【发布时间】:2019-05-03 23:20:11
【问题描述】:
我做了我的 Spring Boot 项目,一切都很好,直到我开始拧弹簧数据 + 休眠。我有很多错误,我一直坚持。最后,我设法摆脱了所有错误,但是现在,当我运行我的项目时,当我切换到 localhost:8080 时,我总是看到 404 错误,并且在我的 IDE 中没有错误:(.
应用:
@SpringBootApplication(scanBasePackages = {"Service", "repository"})
@EntityScan("DataModel")
@EnableJpaRepositories(basePackages = "repository")
public class CloudliquidApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(CloudliquidApplication.class, args);
System.out.println("Let's inspect the beans provided by Spring Boot:");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println(beanName);
}
}
@Bean
public ProductService productService() {
return new ProductServiceImpl();
}
@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setForceEncoding(true);
characterEncodingFilter.setEncoding("UTF-8");
registrationBean.setFilter(characterEncodingFilter);
return registrationBean;
}
@Bean
public TomcatServletWebServerFactory tomcatFactory() {
return new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
((StandardJarScanner) context.getJarScanner()).setScanManifest(false);
}
};
}
}
服务:
public class ProductServiceImpl implements ProductService {
@Autowired
private ProductRepository productRepository;
@Override
public List<Product> getAll() {
return productRepository.findByName("Grape");
}
}
服务(接口):
public interface ProductService {
List<Product> getAll();
}
存储库(接口):
@Repository
public interface ProductRepository extends JpaRepository<Product,Long> {
List<Product> findByName(String name);
}
控制器:
@RestController
public class HelloController {
@Autowired
private ProductService productService;
@RequestMapping("/try")
@ResponseBody
public List the(){
System.out.println("CALLLED");
return productService.getAll();
}
@RequestMapping("/")
public String index(){
return "It's a CloudLiquid";
}
浏览器出错:
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Sun Dec 02 16:18:35 MSK 2018
There was an unexpected error (type=Not Found, status=404).
No message available
【问题讨论】:
-
好吧,你扫描包“服务”和“存储库”,但你的控制器在 com.lopamoko.cloudliquid 中。你为什么不尊重约定,把所有东西都放在一个根包下,把主应用程序类放在那个根包里?
-
是的!!! ,将Controller迁移到包控制器并添加到扫描中。
标签: java spring hibernate spring-boot spring-data