The HibernateTemplate isn't needed anymore since hibernate 3.0.1,
since that release it became easier to plugin nicely to hibernate,
before that spring needed some trickery, proxing and hackery to manage
transactions, thread bound sessions and exception translation. Now
with the newer versions of hibernate that isn't needed anymore, you
still get all the nice stuff exception translation, session management
etc. but without using any spring specific classes. Which imho is
really nice it makes the use of spring even less obtrusive.

I used HibernateTemplate and Dao support, is it required to use these API in a new application?

Can I have latest some sample code to integrate Hibernate with Spring framework.

This style is similar to that of the Hibernate reference documentation and examples, except for holding the SessionFactory in an instance variable. We strongly recommend such an instance-based setup over the old-school static HibernateUtil class from Hibernate's CaveatEmptor sample application.

since many place we are using SessionFactory, which is the best way to get session since earlier i used HibernateUtil?

In previous versions of Spring, the template model was used to provide a common abstraction for many different frameworks (Hibernate, JPA, JMS etc.). While this made developing easy, it also tied your business code to the Spring Framework. One of the goals of Spring 3.x is to decouple your application code from Spring, requiring you to use as little Spring-specific code as possible, thus making your code more reusable.

The recommended integration style is to code DAOs against plain
Hibernate, JPA, and JDO APIs. The older style of using Spring's DAO
templates is no longer recommended; however, coverage of this style
can be found in the Section A.1, “Classic ORM usage” in the
appendices.
[Source]

The enhanced functionality provided by Spring (Transaction management, exception translation etc.) now happens through AOP, and you don't have to worry about it in your code. The mechanism is described in: