在开发中遇到的问题

1、springboot 项目中不同环境中 war 配置能够完成替换,jar包不可以,不能继承springboot start parent
2、maven-resources-plugin 该插件有小问题,需要额外再该插件中添加一下依赖
<dependency>
    <groupId>org.apache.maven.shared</groupId>
    <artifactId>maven-filtering</artifactId>
    <version>1.3</version>
</dependency>
3、在修改项目版本之后需要全部重新打包
4、在sql文件中不要使用 ~ 符号 在gbk编码情况下会自动将文件转换成 utf-8 文件。
5、项目上线需确认以下问题:
  1. 生产环境IP
  2. 生产域名,秘钥等信息
  3. 是否需要向贵公司提供我司生产IP用于白名单
  4. 上线是否需要除上述3条之外的操作
6、top -Hp pid 找出改进程中最耗费内存的进程
jamp -heap  pid  查询新生代、老年代内存使用情况
jmap -histo  pid  查看内存中存活对象
jstat  -gc  pid   gc垃圾回收情况
7、区别
@Transient
@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性;
如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则ORM框架默认其注解为@Basic;

Jackson相关:
@JsonIgnoreProperties(ignoreUnknown = true)
此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。

@JsonSerialize 
此注解用于属性或者getter方法上,用于在序列化时嵌入我们自定义的代码,比如序列化一个double时在其后面限制两位小数点。

@JsonIgnore
此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。

@JsonFormat
此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式,比如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")

@JsonDeserialize
此注解用于属性或者setter方法上,用于在反序列化时可以嵌入我们自定义的代码,类似于上面的@JsonSerialize
8、将包上传在私服上

配置一个

<distributionManagement>
    <repository>
        <id>--和maven settings中serverid一致--</id>
        <name>repository:nexus-releases</name>
        <url>http://<ip>:8081/nexus/content/repositories/snapshots/</url>
    </repository>
</distributionManagement>

注意版本号:如果是快照版本需要在版本号后加 SNAPSHOT 否则打出的包在 releases 中。
9、druid 加密数据库密码使用ConfigFilter
java -cp druid-1.0.16.jar com.alibaba.druid.filter.config.ConfigTools you_password
privateKey:*****
publicKey:*****
password:*****
配置文件
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
     init-method="init" destroy-method="close">
     <property name="url" value="jdbc:derby:memory:spring-test;create=true" />
     <property name="username" value="sa" />
     <property name="password" value="${password}" />
     <property name="filters" value="config" />
     <property name="connectionProperties" value="config.decrypt=true;config.decrypt.key=${publickey}" />
</bean>

有三种方式配置:
- 可以在配置文件my.properties中指定config.decrypt=true
- 也可以在DruidDataSource的ConnectionProperties中指定config.decrypt=true
- 也可以在jvm启动参数中指定-Ddruid.config.decrypt=true
# java 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×