SpringBoot解决方案
配置文件优先级
1. 项目内部配置文件
spring boot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件
1 | –file:./config/ |
以上是按照优先级从高到低的顺序,所有位置的文件都会被加载,高优先级配置内容会覆盖低优先级配置内容。
SpringBoot会从这四个位置全部加载主配置文件,如果高优先级中配置文件属性与低优先级配置文件不冲突的属性,则会共同存在—互补配置。
我们也可以通过配置spring.config.location来改变默认配置。
java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar –spring.config.location=file:///D:/application.properties,classpath:/,classpath:/config/
项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置。
指定配置文件和默认加载的这些配置文件共同起作用形成互补配置。
Idea 单测启用自定义配置:添加jvm参数:-Dspring.config.location=file:///D:/project_conf/application.yml -ea
2. 外部配置加载顺序
SpringBoot也可以从以下位置加载配置:优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置。
1.命令行参数
- 所有的配置都可以在命令行上进行指定;
- 多个配置用空格分开; –配置项=值
java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar –server.port=8087 –server.context-path=/abc
2.来自java:comp/env的JNDI属性
3.Java系统属性(System.getProperties())
4.操作系统环境变量
5.RandomValuePropertySource配置的random.*属性值
6.jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件
7.jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件
8.jar包外部的application.properties或application.yml(不带spring.profile)配置文件
9.jar包内部的application.properties或application.yml(不带spring.profile)配置文件
10.@Configuration注解类上的@PropertySource
11.通过SpringApplication.setDefaultProperties指定的默认属性
配置文件加密
Spring-boot项目中properties文件中的密码明文不太安全,
所以想到给明文加密。了解了一下,有一个依赖工具可以实现这个功能。Ulisesbocchio插件
**1.**添加**maven**依赖:**
1 | <dependency> |
**2.**配置加密密钥或盐值(properties文件中配置):**
1 | jasypt.encryptor.password=1111111111 |
**3.**进入本地maven库.m2\repository\org\jasypt\jasypt\1.9.2路径下,执行加密命令:**
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=密码明文 password=*1111111111* algorithm=PBEWithMD5AndDES
执行命令后会出现加密后密码:
4.将properties文件中需要加密的数据替换成”ENC(密文)”,如:
user.password=ENC(LtogooCZuLSM2vE8uKcCnA==)
5.运行代码正常!
转载于:https://my.oschina.net/kevin2kelly/blog/2254055
6. 用于生成加密字符tool类
可以写一个类用来生成
1 | package com.travelsky.shopping.console.loca.tool; |
原文:使用ulisesbocchio对spring-boot项目properties配置文件信息加密
1 | <dependency> |
问题分析: 因为考虑是内网,我们用的是自己的maven私服,光配置jasypt-spring-boot-starter 无法级联引入,需要单独去引入jasypt-spring-boot的jar
原文链接:执笔记忆的空白
创建SpringBoot项目出现Java:程序包org.springframework.stereotype 不存在——解决办法
前言:在出现问题是查了很多相关的资料,都说的是缺少依赖,需要导包之类的,但是没有说在创建项目后没有选择JRE和Delegate IDE build/run actions to Maven,需要将项目交给Maven管理,希望能对大家有所帮助吧。
一、问题
Java:程序包org.springframework.stereotype 不存在
Java:程序包org.springframework.beans.factory.annotation不存在
二、解决方法
1.File——Settings
2.Setting——Build,Execution,Deployment——Maven——Runner—选择Delegate IDE,选择自己安装的JRE的路径——OK
成功启动
选好之后运行能成功,因为自己出现好几次这样的问题了,所以记录一下,以免下次出现还不会解决。
from here