我们有Spring(3.0.6)@WebSerice
正常使用@Autowried
到@Service
和@Repository
使用Java 7。
最近,我们需要升级到Java 8,然后存储库类不能@Autowired
。
非常简单的重点:
@Repository public interface MyClss extends JpaRepository<MyData, String> { MyData findOne( String key ); }
Spring中的{7}从Java 7到Java 8有什么不同吗?
答案 0 :(得分:0)
我认为@Repository
仅用于类,而不是接口。如果这是一个Spring 3应用程序,您必须将代码编译为java 7或升级到Spring 4.请参阅spring-core 3.2.9 + java 8
答案 1 :(得分:0)
因为我们的遗留项目很旧,包含许多旧的lib和包,所以我们无法升级到Spring 4或3.2。
当我们发现顶部控制杆正在使用CXF Webservice(2.x)时,我们解决了这个问题。该CXF版本不支持Java 8。
Spring bean not injected into CXF web service, Why?
因此,我们不是使用@Autowired,而是通过ApplicationContext更改为使用@Repository获取服务类,这是有效的。
例: OrderService orderService = applicationContextProvider.getApplicationContext()。getBean(OrderService.class);