同一个service ,在本地测试,无论用 @Autowired 还是 通过上下文获取,都能获取到 service,但是部署到服务器,发现 为 null ,不明所以
本地打包后使用 java -jar 运行过没?
只是在 IDE 里面跑成功了不算
谢谢提醒,本地打成jar包测试过了,没问题
@杯酒-故人:
和 外部配置 有关?
试试@Resource
注解
@Autowired
和@Resource
两个注解的区别:
@Autowired
默认按照byType方式进行bean匹配,@Resource
默认按照byName方式进行bean匹配
个人建议:
@Autowired
是Spring的注解,@Resource
是J2EE的注解,Spring属于第三方的,J2EE是Java自己的东西,因此,建议使用@Resource
注解,以减少代码和Spring之间的耦合。
楼主可以先尝试通过 AplicationContext 列出所有被 Spring 管理的 bean,看看你的Service有没有被 Spring 创建并且管理起来。
如果有的话,再看通过 ApplicationContext 的 getBean(Class) 方法找到你的 Service
再然后,就看情况了,我也没啥建议
用windows 打了个包 注入成功
解决方法就是直接在本地跑,不要上线