我继承了一个没有服务或API层的Spring Boot微服务,它表现为HATEOAS风格。
这不是最佳架构,需要更改为MVC。
当前,所有存储库方法都可以使用@RepositoryRestResource批注直接访问。
计划是对其进行重构,并添加控制器和API层(DTO),但是,在添加控制器后,大张旗鼓地不显示Rest控制器。还要注意,在调试控制器端点时,实际上并没有达到。 它被绕开了,这是另一个线索。
@CrossOrigin
@RestController
@RequestMapping("/fixing")
public class FixingController {
private final FixingRepository fixingRepository;
@Autowired
FixingController(final FixingRepository fixingRepository) {
this.fixingRepository = checkNotNull(fixingRepository, "Fixing Repository cannot be null");
}
/**
* Builds a list of Fixing strings from the database
* @return list
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public List getAllFixings() {
final List fixingList = new ArrayList<>();
for (Fixing fixing : fixingRepository.findAll()) {
String name = fixing.getName();
fixingList.add(name);
}
return fixingList;
}
}
这是春天的招摇配置
@Configuration
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.regex("/api.*"))
.build();
}
}
存储库(注意没有@RepositoryRestResource注释)
public interface FixingRepository extends JpaRepository {
@Override
Fixing findOne(Long id);
@Override
List findAll();
}
当我重建并启动服务时,未显示控制器。 它仅显示所有实体及其存储库方法。
POM依赖性
org.springframework.boot
spring-boot-starter-data-rest
org.springframework.boot
spring-boot-starter-data-jpa
org.springframework.boot
spring-boot-starter-actuator
javax.interceptor
javax.interceptor-api
1.2
mysql
mysql-connector-java
runtime
8.0.12
io.springfox
springfox-swagger2
2.8.0
org.projectlombok
lombok
true
io.springfox
springfox-swagger-ui
2.8.0
io.springfox
springfox-data-rest
2.8.0
org.springframework.boot
spring-boot-starter-test
1.5.13.RELEASE
test
org.json
json
20180130
com.vladmihalcea
hibernate-types-52
2.2.2
org.apache.httpcomponents
httpclient
4.5.5
org.liquibase
liquibase-core
3.6.2
org.springframework.cloud
spring-cloud-gcp-starter-storage
1.0.0.RELEASE
任何想法是什么原因造成的? 我在配置中看不到其他东西,这阻止了它的工作