# SpringBoot
# 一、跨域问题 —— CORS
1 | // 拦截器和其他配置 |
# 二、读取配置的几种方式
配置文件:Resources 下的文件,一般为 yml 文件或者 properties 文件
-
资源文件注解:
@PropertySource
-
默认 yml 文件的注解:
@ConfigurationProperties
-
读取对应的值:
@Value
# 三、拦截器和过滤器
-
相同点:都使用 AOP 编程思想
-
不同点:
- 1、Filter 是 Servlet 规范定义的,拦截器是 Spring 框架的
- 2、过滤器在进入 tomcat 容器后,servlet 之前的预处理;拦截器在 servlet 处理后执行
- 3、拦截器可以使用 Spring 中的各个 Bean;Filter 依赖 Servlet 容器(可以操作 Request 和 Response)
- 4、过滤器的实现基于回调;拦截器的实现基于反射
# 四、Spring Event
观察者模式、监听器模式
主要组成:事件(ApplicationEvent)、监听器(ApplicationListener)、事件发布操作(publisher 方法)
1 | public class TestEvent extends ApplicationEvent { |
1 | // 需要将监听器添加到Spring容器 |
1 | @Configuration |
1 |
|
# 其他
# 一、Servlet 主要处理 doGet 和 doPost
# 配置文件脱敏
# 2.6.0 版本前可以使用 jasypt
1 | <dependency> |
配置密钥
1 | jasypt: |
密钥放在配置文件也不是一件很安全的事情,可以通过启动时传参
1 | java -jar xxx.jar -Djasypt.encryptor.password=*** |
对需要加密的属性进行加密
1 |
|
如果遇到以下异常
1 | Encryption raised an exception. A possible cause is you are using strong encryption algorithms and you have not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files in this Java Virtual Machine |
下载 jce_policy-8
,将文件放到对应的 jre/lib/security
路径下,覆盖原有的文件
加密后的密文写入配置
通过 ENC () 包裹密文并写入
# 2.6.0+ 后使用 SanitizingFunction
springboot 的接口,可以自定义指定配置文件的指定规则,对配置文件进行脱敏。
还在研究中,目前启动并没有执行里面的代码
1 |
|