八、在SpringBoot中使用slf4j与logbak

本次开发环境为:
系统:Windows 10 10.0
JDK:JRE: 1.8.0_152-release-1136-b43 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
开发工具:IntelliJ IDEA 2018.1.8
springboot框架:2.2.0

日志设置参考官方文档https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-logging

在之前的文章中我们发现,日志打印可读性越来越差,本篇我们将对其日志进行设置,在SpringBoot中默认采用的是slf4j日志框架,底层默认使用logback,至此我们开始进行对其配置优化。

直接上干货,不多废话,相关问题欢迎在评论区指教。

1、引入日志配置包

1

阅读更多

八、在SpringBoot中使用slf4j与logbak

本次开发环境为:
系统:Windows 10
JDK:1.8
开发工具:IntelliJ IDEA
springboot框架:2.X.X

日志设置参考官方文档https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-logging

在之前的文章中我们发现,日志打印可读性越来越差,本篇我们将对其日志进行设置,在SpringBoot中默认采用的是slf4j日志框架,底层默认使用logback,至此我们开始进行对其配置优化。

直接上干货,不多废话,相关问题欢迎在评论区指教。

1、引入日志配置包

1
2
3
4
5
<!-- 自动化构建工作包 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
阅读更多

七、在拦截器中进行XSS与SQL注入拦截

本次开发环境为:
系统:Windows 10 10.0
JDK:JRE: 1.8.0_152-release-1136-b43 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
开发工具:IntelliJ IDEA 2018.1.8
springboot框架:2.2.0

直接上干货,不多废话,相关问题欢迎在评论区指教。

1、首先准备本次会用到的相关jar包,在pom.xml中导入

1
2
3
4
5
6
7
8
9
10
11
12
<!-- xss过滤组件 -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.12.1</version>
</dependency>
<!-- StringUtil工具类-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>

2、开始制作一个字符串过滤工具,使其所有字符串都能按照相同规则进行过滤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import org.apache.commons.lang3.StringUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.safety.Whitelist;

/**
* 类 {@code FilterCoreUtil} 用于Xss非法标签过滤工具类 <br> 过滤html中的xss字符.
*
* 本软件仅对本次教程负责,版权所有 <a href="http://www.cnhuashao.com">中国,華少</a><br>
*
* @author cnHuaShao
* <a href="mailto:lz2392504@gmail.com
* <p>
* ">cnHuaShao</a>
* 修改备注:
* @version v1.0.1 2019/11/5 19:42
*/
public class FilterCoreUtil {

/**
* 使用自带的basicWithImages 白名单
* 允许的便签有a,b,blockquote,br,cite,code,dd,dl,dt,em,i,li,ol,p,pre,q,small,span,
* strike,strong,sub,sup,u,ul,img
* 以及a标签的href,img标签的src,align,alt,height,width,title属性
*/
private static final Whitelist WHITE_LIST = Whitelist.basicWithImages();
/** 配置过滤化参数,不对代码进行格式化 */
private static final Document.OutputSettings OUTPUT_SETTINGS = new Document.OutputSettings().prettyPrint(false);
static {
// 富文本编辑时一些样式是使用style来进行实现的
// 比如红色字体 style="color:red;"
// 所以需要给所有标签添加style属性
WHITE_LIST.addAttributes(":all", "style");
}

/**
* 过滤主方法入口
* @param content 需要过滤的字符串
* @return 过滤后的字符串
*/
public static String clean(String content) {
if(StringUtils.isNotBlank(content)){
content = content.trim();
}
return Jsoup.clean(content, "", WHITE_LIST, OUTPUT_SETTINGS);
}
}
阅读更多

七、在拦截器中进行XSS与SQL注入拦截


本次开发环境为:
系统:Windows 10 10.0
JDK:JRE: 1.8.0_152-release-1136-b43 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
开发工具:IntelliJ IDEA 2018.1.8
springboot框架:2.2.0

直接上干货,不多废话,相关问题欢迎在评论区指教。

1、首先准备本次会用到的相关jar包,在pom.xml中导入

1
2
3
4
5
6
7
8
9
10
11
12
<!-- xss过滤组件 -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.12.1</version>
</dependency>
<!-- StringUtil工具类-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
阅读更多

六、集成全局AOP切面,进行访问时间与日志打印


本次开发环境为:
系统:Windows 10 10.0
JDK:JRE: 1.8.0_152-release-1136-b43 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
开发工具:IntelliJ IDEA 2018.1.8
springboot框架:2.2.0

1、在pom.xml中增加包引用

1
2
3
4
5
<!-- Springboot的AOP包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>

2、新建一个controller包用于本次测试使用

阅读更多

五、实现自定义配置属性动态加载

本次开发环境为:
系统:Windows 10 10.0
JDK:JRE: 1.8.0_152-release-1136-b43 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
开发工具:IntelliJ IDEA 2018.1.8
springboot框架:2.2.0
在我们日常开发项目时,经常需要自定义一些配置属性用于我们项目的一些启动配置,这里我们就直接在application-dev配置文件中直接实现一下自定义配置属性的读取与使用,便于我们在dev和prod配置文件来回切换。
话不多说,开始行动:

1、在application-dev中增加如下配置:

1
2
3
4
#自定义配置属性测试
system:
username: admin
password: testPassword

2、声明一个controller进行读取这些属性并打印

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@RestController
public class CustomPropertieController {

private Logger log=LoggerFactory.getLogger(CustomPropertieController.class);

/**
* 读取systemc中的username属性
*/
@Value("${system.username}")
private String username;

/**
* 读取sytemc中的password属性
*/
@Value("${system.password}")
private String password;

/**
* 进行打印相关属性参数
* @return
*/
@RequestMapping("/getDemo2")
public String getCustomPropertie(){
StringBuffer systemToString = new StringBuffer();
systemToString.append("username: ");
systemToString.append(username);
systemToString.append(" ");
systemToString.append("password: ");
systemToString.append(password);
return systemToString.toString();
}
}
阅读更多

五、实现自定义配置属性动态加载


本次开发环境为:
系统:Windows 10 10.0
JDK:JRE: 1.8.0_152-release-1136-b43 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
开发工具:IntelliJ IDEA 2018.1.8
springboot框架:2.2.0
在我们日常开发项目时,经常需要自定义一些配置属性用于我们项目的一些启动配置,这里我们就直接在application-dev配置文件中直接实现一下自定义配置属性的读取与使用,便于我们在dev和prod配置文件来回切换。
话不多说,开始行动:

1、在application-dev中增加如下配置:

1
2
3
4
#自定义配置属性测试
system:
username: admin
password: testPassword
阅读更多

四、实现生产、开发配置文件分离

本次开发环境为:
系统:Windows 10 10.0
JDK:JRE: 1.8.0_152-release-1136-b43 amd64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
开发工具:IntelliJ IDEA 2018.1.8
springboot框架:2.2.0

在SpringBoot中主要配置文件为application.properties配置文件,该文件我们也可以更改为application.yml,这里我们就直接采用application.yml的配置来实现生产、开发的配置分离。

1、创建两个文件,分别代表生产与开发。

image.png
image.png

2、在application.yml中增加如下配置参数:
1
2
3
spring:
profiles:
active: dev
阅读更多