Java 春季4&x2B;泽西集成@Autowired
我尝试了很多方法,但我的资源中的“searchservice”似乎是随机实例化的。SearchResource中的SearchService几乎总是空的 如您所见,我添加了SpringJersey依赖项 这是我的密码: SearchResource(泽西岛,尝试实例化searchService)Java 春季4&x2B;泽西集成@Autowired,java,spring,rest,maven,spring-data-neo4j,Java,Spring,Rest,Maven,Spring Data Neo4j,我尝试了很多方法,但我的资源中的“searchservice”似乎是随机实例化的。SearchResource中的SearchService几乎总是空的 如您所见,我添加了SpringJersey依赖项 这是我的密码: SearchResource(泽西岛,尝试实例化searchService) @Path(“搜索”) @组成部分 公共类搜索资源{ 私有静态最终记录器=Logger.getLogger(SearchResource.class); @上下文 私有信息上下文; @自动连线 私人搜索
@Path(“搜索”)
@组成部分
公共类搜索资源{
私有静态最终记录器=Logger.getLogger(SearchResource.class);
@上下文
私有信息上下文;
@自动连线
私人搜索服务;
/**
*创建SearchResource的新实例
*/
公共搜索资源(){
}
/**
*检索com.gehc.mpse.backend.ws.SearchResource实例的表示形式
*@param搜索
*@param
*@param作者
*@返回java.lang.String的实例
*/
@得到
@产生(MediaType.APPLICATION_JSON)
公共响应搜索(@QueryParam(“查询”)字符串搜索,@QueryParam(“作者”)列表作者){
System.out.println(“searchservice:+searchservice”);
Response res=searchService.searchQuery(搜索);
返回res;
}
公共搜索服务getSearchService(){
返回搜索服务;
}
public void setSearchService(搜索服务搜索服务){
this.searchService=searchService;
}
我的班级搜索服务:
@Component
public class SearchService {
private static final Logger LOGGER = Logger.getLogger(SearchService.class);
@Autowired
private IPublicationRepository repository;
@Autowired
private Neo4jTemplate template;
private static final Integer PAGE_SIZE = 20;
public SearchService() {
LOGGER.debug("search service initialzed " + this);
}
public Response searchQuery(String query) {
PageRequest request
= new PageRequest(1, PAGE_SIZE);
LOGGER.debug("repo : " + repository);
Page<Publication> res = repository.findPublicationByTitle(query, request);
//repository.query(query, null);
return Response.ok().entity(res.getContent()).build();
}
public IPublicationRepository getRepository() {
return repository;
}
public void setRepository(IPublicationRepository repository) {
this.repository = repository;
}
public Neo4jTemplate getTemplate() {
return template;
}
public void setTemplate(Neo4jTemplate template) {
this.template = template;
}
}
@组件
公共类搜索服务{
私有静态最终记录器=Logger.getLogger(SearchService.class);
@自动连线
私有IPPublicationRepository;
@自动连线
私有Neo4jTemplate模板;
私有静态最终整数页面大小=20;
公共搜索服务(){
调试(“搜索服务已初始化”+此);
}
公共响应searchQuery(字符串查询){
页面请求请求
=新页面请求(1,页面大小);
调试(“repo:+repository”);
Page res=repository.findPublicationByTitle(查询、请求);
//repository.query(query,null);
返回Response.ok().entity(res.getContent()).build();
}
公共IPPublicationRepository getRepository(){
返回存储库;
}
public void setRepository(IPPublicationRepository){
this.repository=存储库;
}
公共Neo4jTemplate getTemplate(){
返回模板;
}
公共void setTemplate(Neo4jTemplate模板){
this.template=模板;
}
}
我的pom.xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j</artifactId>
<version>3.2.0.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-cypher</artifactId>
</exclusion>
<exclusion>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-kernel</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Spring [End] -->
<!--neo4j -->
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>2.1.5</version>
</dependency>
<dependency>
<groupId>org.neo4j.app</groupId>
<artifactId>neo4j-server</artifactId>
<version>2.1.5</version>
</dependency>
<!-- end neo4j -->
<dependency>
<groupId>org.glassfish.metro</groupId>
<artifactId>webservices-rt</artifactId>
<version>2.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-java2wsdl</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-api</artifactId>
<version>1.2.14</version>
</dependency>
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-impl</artifactId>
<version>1.2.14</version>
</dependency>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.9-RC1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-spring3</artifactId>
<version>2.13</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
<exclusion>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
</exclusion>
<exclusion>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.glassfish.hk2</groupId>
<artifactId>hk2</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.13</version>
<scope>provided</scope>
</dependency>
</dependencies>
org.springframework
弹簧芯
${spring.version}
公用记录
公用记录
org.springframework
spring上下文
${spring.version}
org.springframework
spring上下文支持
${spring.version}
org.springframework
弹簧网
${spring.version}
编译
org.springframework
春豆
${spring.version}
org.springframework
德克萨斯州春季
${spring.version}
org.springframework.data
spring-data-neo4j
3.2.0.1发布
org.neo4j
neo4j
org.neo4j
neo4j-cypher
org.neo4j
neo4j核
org.neo4j
neo4j
2.1.5
org.neo4j.app
neo4j服务器
2.1.5
org.glassfish.metro
Web服务rt
2.3
假如
爪哇
javaeewebapi
7
假如
org.slf4j
slf4j api
1.7.7
org.slf4j
slf4j-log4j12
1.7.7
org.apache.axis2
axis2
1.6.2
org.apache.axis2
axis2-java2wsdl
1.6.2
org.apache.ws.commons.axiom
axiom api
1.2.14
org.apache.ws.commons.axiom
简化公理
1.2.14
组织反思
反思
0.9.9-RC1
org.glassfish.jersey.ext
泽西-斯普林3
2.13
org.springframework
春天
org.springframework
弹簧芯
org.springframework
弹簧网
org.springframework
春豆
org.glassfish.jersey.core
泽西服务器
org.glassfish.jersey.containers
jersey容器servlet核心
org.glassfish.hk2
hk2
org.glassfish.jersey.media
泽西媒体公司
2.13
假如
My web.xml:
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>PMSE</display-name>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/context.xml</param-value>
</context-param>
</web-app>
PMSE
org.springframework.web.context.ContextLoaderListener
org.springframework.web.context.request.RequestContextListener
上下文配置位置
classpath*:spring/context.xml
这是我的代码:SearchResource(泽西岛,尝试实例化searchService)
请注意,Jersey不会实例化您的SearchService。因为您在资源上有一个@Component
注释,SearchService应该通过Spring连接到SearchResource,Jersey应该从Spring检索SearchResource实例
您的Spring上下文是否创建了两次(一次由Jersey创建,一次由Spring的ContextLoaderLis创建)
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>PMSE</display-name>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/context.xml</param-value>
</context-param>
</web-app>