Spring Autowired注入怎么不管用啊?
我在一个类里加了@bean注解@ConfigurationpublicclassDatabaseConfiguration{public@BeanJdbcTemplate...
我在一个类里加了@bean注解
@Configuration
public class DatabaseConfiguration{
public @Bean JdbcTemplate jdbcTemplate() {
return new JdbcTemplate(dataSource());
}
}
服务器启动的时候会注入到下面的代码,传入template值。下面的代码在dao里面:
private JdbcTemplate jdbcTemplate;
@Autowired
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
但是我再到controller里面调用dao的时候,调用任何方法,上面的template都是null,也就是在进入dao的时候注入就没有了。这是怎么回事? 展开
@Configuration
public class DatabaseConfiguration{
public @Bean JdbcTemplate jdbcTemplate() {
return new JdbcTemplate(dataSource());
}
}
服务器启动的时候会注入到下面的代码,传入template值。下面的代码在dao里面:
private JdbcTemplate jdbcTemplate;
@Autowired
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
但是我再到controller里面调用dao的时候,调用任何方法,上面的template都是null,也就是在进入dao的时候注入就没有了。这是怎么回事? 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏20(财富值+成长值)
1个回答
展开全部
1、controller 怎么会调用dao?
正确应该是controller调用service,service调用dao
2、首先确定你的spring文件里面已经加上启用注解的模式,默认是不启用的,
<context:annotation-config />
如果是springmvc,<mvc:annotation-driven />
再确定你是否已经加上扫描文件的配置
<context:component-scan base-package=""></context:component-scan>
3、再确定controller,service,dao三层都已经在类上面标注对于的注解@Controller、@Service、@Repository
因为不确定你的具体配置,只能先给你排除一般出现这种问题的情况了。
正确应该是controller调用service,service调用dao
2、首先确定你的spring文件里面已经加上启用注解的模式,默认是不启用的,
<context:annotation-config />
如果是springmvc,<mvc:annotation-driven />
再确定你是否已经加上扫描文件的配置
<context:component-scan base-package=""></context:component-scan>
3、再确定controller,service,dao三层都已经在类上面标注对于的注解@Controller、@Service、@Repository
因为不确定你的具体配置,只能先给你排除一般出现这种问题的情况了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询