spring boot 学习笔记(二)

本文介绍了Spring Boot的配置信息存储在`application.properties`,包括Tomcat设置和数据库连接。此外,讲解了如何加载静态资源,特别是自定义静态目录,并强调了调试时静态资源的更新问题。还讨论了应用层配置的加载,使用yaml格式,以及通过jasypt加密数据库配置。最后提到了@Bean注解在对象创建和管理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值