那些年我学Java踩过的坑

那些年我学Java踩过的坑

菜鸟阶段,几乎天天在雷上度过。。。

第一个:数据库表字段不能用sql字段,会报500错误。比如order 在select 时就会报错。

第二个:在用int 类型做查询操作Controller层要写Integer类型,不然会报“”

Request processing failed; nested exception is java.lang.IllegalStateException: Optional int parameter "page" is present but cannot be translated

into a null value due to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type

解决办法如下:

第三:generate 配置文件中,数据库表配置出问题,会报@autowired找不到Mapper的错误:

在这里:

第四:Spring Cloud 配置Hystrix熔断服务。

失败:

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class},scanBasePackages= {"com.lero.springCloud.shoppingProject.microServiceCommon.feignService"}) //扫描注入fallbackFacotory

@EnableEurekaClient //启用发现服务客户端

@EnableFeignClients(basePackages= {"com.lero.springCloud.shoppingProject.microServiceCommon.feignService"})  //启用声明式服务调用客户端

使用彻底解耦的方式配置在feign服务端,提供fallbackFacotory实现类重写回调方法,也在配置文件中配置了使用feign的熔断服务,喜剧的是客户端调用controller一直显示404错误,去掉熔断相关配置又可以。很明显是嗲用Controller没成功,难道是controller没有注入容器,也不应该啊,Spring boot只要主程序在最外面就会扫描一起的bean并且自动注入啊,况且也加了RestController注解。诡异····

经过多次实验加百度,终于成功了。

在主程序的各种注解有问题,由于Feign的服务抽出来封装到Maven子模块,虽然客户端消费调用时已经引入了包,但是由于是跨项目引用API,需要加包扫描,将实例注入进来。

好戏在这里:我引入了feign服务包和熔断需要的回调类,才造成上述问题,如果不要熔断配置,直接没问题

最后的解决办法竟然是在主程序注解声明上添加自己项目的包名!!

怀疑是添加了其他的包名,必须要添加自己的包名,才能扫描到自己的controller。

成功:

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class},scanBasePackages= {"com.lero.springCloud.shoppingProject.microServiceCommon.feignService","com.lero.springCloud.shoppingProject.feignServiceConsumer"}) //还要加上自身包的扫描

@EnableEurekaClient //启用发现服务客户端

@EnableFeignClients(basePackages= {"com.lero.springCloud.shoppingProject.microServiceCommon.feignService","com.lero.springCloud.shoppingProject.feignServiceConsumer"})  //启用声明式服务调用客户端

最坑的一个是:

Java的IDE用Eclipse就行,MyEclipse要收费

我这么穷,你怎么好意思问我要钱

好了,今天的总结就到这里,希望大家可以在学习Java的道路上继续奋勇前进~

最后给和我以前一样学习Java从小白一路踩坑走来的伙伴们献花

给还在学习的小伙伴们鼓励;

顺便提供一些小援助

以上内容都是我自己的一些感想,分享出来欢迎大家指正,顺便求一波关注,里面的资料各位小伙伴关注我后点击【Java】就可以免费领取~