一、spring boot 的相关配置信息
spring boot的配置信息存在于 resources目录下的application.properties中,该文件可包含tomcat服务的相关配置信息,如:监听端口,服务地址等相关信息,还可以包含数据库相关的连接配置信息,一个典型的application.properties文件如下示例:
#tomcat监听配置
server.port=8000
#数据库连接配置
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.url=jdbc:sqlserver://localhost:1433;DatabaseName=WorkCheck
spring.datasource.username=sa
spring.datasource.password=123456
#数据库连接池配置
spring.datasource.type=org.apache.commons.dbcp.BasicDataSource
spring.datasource.dbcp2.max-wait-millis=10000
spring.datasource.dbcp2.min-idle=5
spring.datasource.dbcp2.initial-size=5
当采用mybatis实现持久层时,需要通过xml的方式进行数据库表映射配置以及定义一些特殊的mybatis配置,可通过在application.properties文件中导入文件的方式,实现相关配置,示例如下:#导入 mybatis配置文件
mybatis.config-locations=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
持久层为实现系统自动创建持久层对象,需要在主程序入口类中导入持久层接口所在包,示例如下:
//=============定义持久层接口================
/*
注意:@Select,@Delete注释的使用方法xml文件中进行查询、删除、更改的方法是一样的,只不过是用注释替代了xml配置,
这类似与spring:即可采用xml方式定义bean,也可采用注释的方式实现bean
*/
public interface IUserDao {
//int insert(UserModel record);
@Select("select * from S_USER")
List<UserModel> selectUsers();
@Delete("delete from s_user where personid=#{personid,jdbcType=VARCHAR}")
int deleteUser(String personid);
//int updateUser(UserModel record);
}
MapperScan(basePackages = {"com.example.dao"}) public class DemoApplication { @Bean protected DataSourceTransactionManager testDataSourceBean(DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } public static void main(String[] args) { SpringApplication.run(DemoApplication.class,args); } }备注:红色标注代码既是导入持久层,注意:持久层的数据库操作代码由mybatis根据持久层接口文件和xml配置文件自动生成,所以在编写xml文件是务必注意:标注了红色的命名空间必须是相应的接口名称,否则mybatis不能正确的创建持久层实现类
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.example.dao.IUserDao" > .... </mapper>
二、spring boot 加载静态资源
spring boot的静态资源默认保存在resources目录下,该目录默认支持public、static、resources几个默认子目录,当需要添加脚本、样式文件、图片等其它静态资源时,可通过继承WebMvcConfigureAdapter类来实现自定义静态目录的加载,示例代码如下:
//@EnableWebMvc
@Configuration
public class StaticResourceConfig extends WebMvcConfigurerAdapter
{
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry)
{
registry.addResourceHandler("/script/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/script/");
registry.addResourceHandler("/css/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX+"/css/");
super.addResourceHandlers(registry);
}
}
备注:继承的WebMvcConfigurerAdapter类需要通过@ComponentScan方式进行加载,配置类加载成功后即可通过http:xxx.xxx.xxx.xxx:8000/script/xx.js方式检查静态路径加载是否成功,当html页面所在路径映射为非根路径时,需要特别注意的是,该页面访问restful接口的路径是相对html页面所在位置开始。
特别需要说明的是:在spring boot 进行调试时,即使修改了客户端的脚本,也需要重新启动运行,否则在浏览器执行的脚本不会更新
三、加载应用层配置信息
spring boot 支持采用yaml的方式加载配置信息,也支持将应用层配置放置到应用属性文件中,到主应用类中加载属性文件的方式获取属性信息;如:示例中将应用层配置信息保存到enviorment.properties文件中,然后读取配置文件中的配置数据;示例代码:
//============加载配置文件==================
@PropertySource("classpath:enviorment.properties")
public class DemoApplication {
public static void main(String[] args) {
ConfigurableApplicationContext configureContext=SpringApplication.run(DemoApplication.class,args);
ConfigurableEnvironment configureEnv= configureContext.getEnvironment();
getEnviormentConfigure(configureEnv);
}
protected static void getEnviormentConfigure(ConfigurableEnvironment configureEnv)
{
String os= configureEnv.getProperty("osVer");
String webServer=configureEnv.getProperty("webServer");
}
}
四、加密数据库访问信息在spring boot中可采用jasypt加解密数据库访问配置信息,首先在pom.xml中添加相关依赖,配置信息如下示意:
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>1.8</version>
</dependency>
完成依赖包更新后,切换到本地maven仓库,在\org\jasypt\jasypt\1.9.2目录下执行命令:java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="123456" password=574143 algorithm=PBEWithMD5AndDES
其中input表示带加密字符串,password表示密钥,algorithm表示加密算法;操作界面如图示例:
在jasypt 1.9.2中加密配置信息非常简单,示例如下:
#数据库访问配置
server.port=8000
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.url=jdbc:sqlserver://localhost:1433;DatabaseName=WorkCheck
spring.datasource.username=sa
spring.datasource.password=ENC(wpjc2CfR+dHWLapVQNsk/g==)
#数据库连接池配置
spring.datasource.type=org.apache.commons.dbcp.BasicDataSource
spring.datasource.dbcp2.max-wait-millis=10000
spring.datasource.dbcp2.min-idle=5
spring.datasource.dbcp2.initial-size=5
#解密数据库访问口令
jasypt.encryptor.password=574143
jasypt.encryptor.algorithm=PBEWithMD5AndDES
备注:红色部分即是于加解密相关的配置信息
五、spring boot中关于bean对象设置和访问
spring 中支持将@Bean注释应用公共方法,但需要包含@Bean注释的对象表识为@Configure 或@Component,当标识为@Component对象时,需要采用@Autowire的方式创建对象,才能正确的创建获取@Bean注释标记的对象
关于bean的说明参见:
https://www.cnblogs.com/feiyu127/p/7700090.html