我正在使用从Apache Solr查询数据的REST Web服务。我正在使用Spring引导+数据与Solr存储库。 我不知道如何互连作为服务,存储库和控制器层。从控制器访问服务层
I have the following structure
控制器:
@RestController
public class ImageSearchController {
private final Logger log = LoggerFactory.getLogger(this.getClass());
@Resource ImageService imageService;
....
}
主到SpringBootApplication:
@SpringBootApplication
public class Application extends SpringBootServletInitializer{
public static void main(String[ ] args) {
SpringApplication.run(Application.class , args);
}
}
服务:
public interface ImageService {
List<Image> searchTerm(String searchTerm);
List<Image> search(String imgSrc , String imgTitle);
List<Image> searchByImgSrc(String searchTerm);
List<Image> findAll();
}
服务默认地将Impl:
@Service
public class ImageServiceImpl implements ImageService {
@Resource
private ImageRepository repository;
@Override
public List<Image> search(String imgSrc , String imgTitle) {
return repository.findByImgSrcContainsOrImgTitleContains(imgSrc , imgTitle);
}
....
}
库(春数据):
public interface ImageRepository extends SolrCrudRepository< Image , String > {
public List<Image> findAll();
...
}
的pom.xml:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.solr/solr-solrj -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>5.1.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-solr -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-solr</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
</dependencies>
...
<repositories>
<repository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</repository>
<repository>
<id>spring-milestone</id>
<name>Spring Milestone Maven Repository</name>
<url>http://repo.springsource.org/libs-milestone</url>
</repository>
</repositories>
如何创建bean并访问服务层中的控制器? 如何使用其他Web服务配置solr客户端?
UPDATE
我升级从1.4.3春天引导版本为1.5.1,它的工作。老实说,我不明白为什么。 现在我得到另一个错误,当访问solr时,spring数据复制solr中的核心名称。任何想法 ?
谢谢
编辑:添加pom文件 – alves