个人成就
TA的专栏
- Spring boot 16篇
- Q & A 32篇
- RPC 2篇
- RocketMQ 8篇
- Nepxion 13篇
- Eureka 12篇
- Sentinel 6篇
- Circuit Breaker 14篇
- Hystrix 8篇
- Sharding-jdbc 2篇
- Guava in Action 5篇
- J.U.C 1篇
- =======Language======
- Java 54篇
- JS 3篇
- ====operating system====
- JVM 2篇
- Linux 13篇
- Window
- =======Data Base======
- Oracle
- MySQL 14篇
- H2
- Redis 9篇
- MongoDB 5篇
- ========J2EE=========
- Architecture 71篇
- Tomcat 8篇
- CAS 4.0.x 5篇
- Servlet 10篇
- =======Big Data=======
- Distributed 40篇
- hadooop 1篇
- docker 2篇
- Zookeeper 4篇
- Spring Boot & Cloud 30篇
- ========Tool=========
- Develop 8篇
- IDE 12篇
- =======Framework=====
- Spring MVC Reference 22篇
- Spring Framework 54篇
- Dubbo 30篇
- Spring MVC 41篇
- MyBatis 10篇
- Guava 25篇
- ======Distributed======
- Message Queue 21篇
- 分布式配置 6篇
- APM 1篇
- Job 9篇
- =======IT coder=======
- Data Structure 2篇
- Algorithms 7篇
- Career 4篇
- optimize 1篇
- Reading note 3篇
- Interview 2篇
兴趣领域
设置
- 大数据
- 后端
- 搜索
个人简介
热爱开源技术,时刻对技术保持好奇心。
创作活动更多
- 最近
- 文章
- 代码仓
- 资源
- 问答
- 帖子
- 视频
- 课程
- 关注/订阅/互动
- 收藏
搜TA的内容
搜索 取消
最后需要注意的是,今天我们已经看到了 spring 框架在特定于应用程序缓存的缓存领域提供了什么。我们还看到了 spring 中支持该功能的注释。我希望本教程对你有用。在这篇文章中,我们使用了回退缓存提供程序,即后台的。下一步是配置其他支持的缓存引擎,如 Redis, Ehcache 等。
@Autowired注解导入对象实例时出现null的情况
答:
原因分析
- 从 SchedulingRunnable 这个类上面没有添加 Spring Bean 注解,你这个对象其实是没有纳入 Spring Bean 的管理
- 当你试图当你在 SchedulingRunnable 上面添加了 Spring Bean 注解的时候报了 Consider defining a bean of type 'net.huadong.citos.bom.server.scheduled.entity.ReeferTimerSet' in your configuration. 这个错误,这个原因是因为 Spring 在创建 bean 的时候,因为你没有定义无参构建器,只定义了 ReeferTimerSet 这个参数的构建器。而且你并没有定义 ReeferTimerSet 这个类型的 bean 在Spring 当中,所以报了以上报错。
- SchedulingRunnable 这个类其实是实现了 Runnable 接口的,对于线程这种消耗资源的操作,我猜测你应该使用了线程池这种技术。
- 综上可得,你的 SchedulingRunnable 这个对象并没有纳入 Spring 容器的管理,但是你使用了 Spring 的依赖注入(@Autowired).这本身就不可能。
解决方案
- 构建 SchedulingRunnable 这个对象你可以使用构建器方式来传递上面三个使用 Spring @Autowired 来构建对象。如下所示:
public class SchedulingRunnable implements Runnable {
private JpaRepository jpaRepository;
private JdbcTemplate jdbcTemplate;
private SysParamService sysParamService;
private ReeferTimerSet cron;
public SchedulingRunnable(JpaRepository jpaRepository, JdbcTemplate jdbcTemplate,
SysParamService sysParamService, ReeferTimerSet cron) {
this.jpaRepository = jpaRepository;
this.jdbcTemplate = jdbcTemplate;
this.sysParamService = sysParamService;
this.cron = cron;
}
...
}
回答问题 2022.08.15