问题描述
我在BaseDaoImple:publicclassBaseDaoImpl<T>implementsBaseDao<T>{@ResourceprotectedstaticSessionFactorysessionFactory;}在UserDaoImpl中@ServicepublicclassUserDaoImplextendsBaseDaoImpl<User>implementsUserDao{}applicationContext.xml配置文件<beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><!--指定hibernate配置文件指定路径--><propertyname="configLocation"value="classpath:hibernate.cfg.xml"></property><!--配置c3p0数据库连接池--><propertyname="dataSource"><beanclass="com.mchange.v2.c3p0.ComboPooledDataSource"><!--数据库连接信息--><propertyname="jdbcUrl"value="${jdbcUrl}"></property><propertyname="driverClass"value="${driverClass}"></property><propertyname="user"value="${user}"></property><propertyname="password"value="${password}"></property></bean></property></bean>这个问题很是烦躁,困扰了我两天已经。求救
解决方案
解决方案二:
@TestpublicvoidtestSessionFactory(){SessionFactorysessionFactory=(SessionFactory)ac.getBean("sessionFactory");System.out.println(sessionFactory);}这样是可以获得sessionFactory的
解决方案三:
这样写试试:privateSessionFactorysessionFactory;@ResourcepublicvoidsetSessionFactory(SessionFactorysessionFactory){this.sessionFactory=sessionFactory;}
解决方案四:
还是空的啊。
解决方案五:
static的当然无法注入啦
解决方案六:
我觉得是你的bean没有被扫描到
解决方案七:
建议楼主按照2楼写法试试。
解决方案八:
非static的也是空
解决方案九:
二楼的试过了,也是空的。publicSessionFactorygetSessionFactory(){////ApplicationContextac=newClassPathXmlApplicationContext("applicationContext.xml");//sessionFactory=(SessionFactory)ac.getBean("sessionFactory");//System.out.println(sessionFactory+"======获得sessionFactory");//returnsessionFactory;//}这样子是可以获得的。但是为什么注入就是不行呢?
解决方案十:
百度注解是否可以继承二楼正解
解决方案十一:
@Resource(name="sessionFactory")publicvoidsetSuperSessionFactory(SessionFactorysessionFactory){super.setSessionFactory(sessionFactory);}
Resource后面记得标记name=“”版本问题有写版本是不能自动识别的
解决方案十二:
publicclassBaseDaoImpl<T>implementsBaseDao<T>{@ResourceprotectedstaticSessionFactorysessionFactory;}在上面的方法加setter方法试试
解决方案十三:
楼主问题解决没啊
解决方案十四:
@Autowired@Qualifier("sessionFactory")privateSessionFactorysessionFactory;
解决方案十五:
static的sessionFactory不能被注入去掉static。。。。。。。