Apache Solrからデータを照会するREST Webサービスを使用しています。私はSolrリポジトリでSpringブート+データを使用しています。 サービス層、リポジトリ層、コントローラ層として相互接続する方法がわかりません。コントローラからサービス層にアクセス
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