技能总结
搭建时,多module的,父模块pom加<modules>,子模块加<parent>,设置成父级的相关属性,但是要删除里边的<relativePath/>,因为它表示到网上去找,这里父级在本目录,不能加<relativePath>.
pom的tomcat的作用域,也要删除,因为默认的是运行时去除,导致找不到Filter类
配置zuul时,serrviceId就是client里边的spring.application.name,如果写错,会报
Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: eureka-client
zuul可以用来转发到老项目,比如这种配置:
#这里的配置表示,访问/it/** 直接重定向到http://www.ityouknow.com/**
zuul.routes.ityouknow.path: /it/**
zuul.routes.ityouknow.url: http://www.ityouknow.com/
为了不开端口就可以访问某个端口,可以用这种方式进行转发,例如
url: http://localhost:8761/
编译
mvn compile
运行
nohup java -jar xxx.jar
解包
jar -xf
压包
jar -cfm0
rm -f parkingattachmentclient.jar ;jar -cfm0 parkingattachmentclient.jar META-INF/MANIFEST.MF BOOT-INF/ META-INF/ org;nohup java -jar parkingattachmentclient.jar
JPA用法
// @Modifying 查询的时候不用加,别的时候都要加
@Query 默认的用的不是原生的
// nativeQuery = true 使用原生的就要加上这个
参数 ?1,?2 数字表示,第几个参数
@Entity实体内里边的表名需要注意的就是 如果蛇形表名名称里面含有单个字母的单词,转换成驼峰就会出错,需要加上这个@Table参数指明表名,尚未找到其他的更好的办法
继承JpaRepository注意greaterThan不包含等于
@Entity实体内不用持久化的属性加@Transient
@Version表示乐观锁
后台运行nohup java -jar 文件名.jar 这时候会产生一个日志文件nohup.out,不过,由于不能自动分割,所以需要在日志框架中配置分割
logback配置分割集散,appender,rollingPolicy类分别是RollingFileAppender,SizeAndTimeBasedRollingPolicy
运行外部配置命令 ——nohup java -jar xx.jar --spring.config.location=路径(application.yml)
驼峰与蛇形转换错误,问题比较严重,解决办法为:
JPA自带的数据库映射,遇到两个大写字母相连的时候无法正确映射,以及表名是大写的时候,无法进行映射的问题,这个问题导致所有的查询都无法查询到正确的数据,要手动定义命名策略来规定大小写及蛇形转换
private String myCamelToUperSnacke(String s){
// 连续两个大写,把前一个转成大写小写
// tableName.replace()
if(!s.matches(".*[A-Z][a-z].*"))//为了防止@Table(..)已经手动转换过的在此转换,加入驼峰式限制 bug TX类不能变成T_X表
return s.toUpperCase();
StringBuilder sb=new StringBuilder(s);
int n=0;
for (int i = 0; i < s.length(); i++) {
char c=s.charAt(i);
if(c>='A'&&c<='Z')
sb.insert(i+n++,'_');
}
// byte[] resp = new byte[666];int x=88;new String(resp,0,x,"utf8");
if (sb.charAt(0)=='_')
sb.deleteCharAt(0);
// sb.re
return sb.toString().replaceAll("__","_").toUpperCase();
}
异常处理时,后台项目可以设置404等页面也返回json,如下
// #没有绑定的url直接抛出错误
// spring.mvc.throw-exception-if-no-handler-found=true
// #不为静态文件建立映射
// spring.resources.add-mappings=false
@ExceptionHandler(NoHandlerFoundException.class)
public Object pageExceptionHandler(Exception exception)
SpringBoot引用Eureka导致返回结果由json变为xml解决方案
集成了EurekaServer,又需要jackson-dataformat-xml这个依赖,解决方案是在请求的Mapping上加上produces = { “application/json;charset=UTF-8” }
不过这个问题其实也不用处理,因为通过阿加克斯调用的时候,返回的又自动变回了json格式,他是根据请求头判断的
构建springcloud踩坑总结
最新推荐文章于 2025-01-14 15:02:44 发布