spring集成hibernate用annotation注入sessionFacotry

@PostConstruct(JSR-250)
在方法上加上注解@PostConstruct,这个方法就会在Bean初始化之后被Spring容器执行(注:Bean初始化包括,实例化Bean,并装配Bean的属性(依赖注入))。
它的一个典型的应用场景是,当你需要往Bean里注入一个其父类中定义的属性,而你又无法复写父类的属性或属性的setter方法时,如:

   public class UserDaoImpl extends HibernateDaoSupport implements UserDao {   
       private SessionFactory mySessionFacotry;   
       @Resource  
       public void setMySessionFacotry(SessionFactory sessionFacotry) {   
           this.mySessionFacotry = sessionFacotry;   
       }   
       @PostConstruct  
       public void injectSessionFactory() {   
           super.setSessionFactory(mySessionFacotry);   
       }   
       ...   
   }  

public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
	private SessionFactory mySessionFacotry;
	@Resource
	public void setMySessionFacotry(SessionFactory sessionFacotry) {
		this.mySessionFacotry = sessionFacotry;
	}
	@PostConstruct
	public void injectSessionFactory() {
		super.setSessionFactory(mySessionFacotry);
	}
	...
}


这里通过@PostConstruct,为UserDaoImpl的父类里定义的一个sessionFactory私有属性,注入了我们自己定义的sessionFactory(父类的setSessionFactory方法为final,不可复写),之后我们就可以通过调用super.getSessionFactory()来访问该属性了。 时

你可能感兴趣的:(spring,Hibernate,bean)