`
joygarden
  • 浏览: 25944 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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()来访问该属性了。 时
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics