SpringBoot的基本配置

**

SpringBoot的基本配置:

**

主程序入口:XxxApplication,使用@SpringBootApplication注解修饰
在这里插入图片描述
类加载路径Resource:
**配置文件:**以application命名,结尾可以是yml、yaml或properties,配置文件的配置作用就是替换SpringBoot自动装配的默认配置,在配置文件中配置的属性,可以通过配置类使用@ConfigurationProperties(perfix=“jdbc”)将配置文件中前缀为jdbc的属性映射到配置类(使用@Configuration或@Conponent等修饰)中
springboot可以在以下地方读配置文件:优先级由上到下:
1、file:./config/
2、file:./
3、classpath:/config/
4、classpath:/

**yml配置的优势:**支持松散绑定(由烤串写法映射成驼峰),JSR303校验、对象写法(map、list等)

springboot的多环境配置方式:
一、配置文件为properties文件:编写多份配置文件,文件名为application-xxx.properties,xxx就是环境的名字,通过在配置文件中写spring,profiles.active="xxx"选择激活哪个环境的,xxx就是application-后的文件名
二、配置文件为yml文件:多个环境可以编写在一个文件当中,多环境使用----隔开,spring:profile指定环境名,如:


server:
post:8082
spring:
frofilers:
:active=“dev” #指定激活的环境


SpringBoot处理静态资源的方式:
一、通过webjars以maven依赖方式引入,通过localhost:8080/webjars访问,比较麻烦,主要使用方式二
二、静态资源放classpath类加载路径下的:/META-INF/resources/或/resources/ 或/static/或/public/下,就可以通过任意路径直接访问到,如localhost:8080/1.js就能访问到这四个路径下的1.js文件,优先级由前到后。
如果自定义了自己的静态资源路径(static-path-pattern),则会根据自定义的路径寻找静态资源,以上方式失效。

使用Java类和注解配置方式代替传统XML配置:
springBoot当中java配置主要靠java类和一些注解代替xml
@Configuration:声明一个类作为配置类,代替xml文件
@Bean:声明在方法上,将方法的返回值加入Bean容器,代替标签,默认的id为方法名
@value:属性注入,单个属性注入,修饰成员变量
@PropertySource:指定外部属性文件,注入

SpringBoot的属性注入方式:
**一、**单独将属性注入一个类当中,可以供其他配置类使用,步骤如下
1、在application.properties配置属性,如:
jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezione=UTC&useUnicode=true&characterEncoding=utf-8
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.username=root
jdbc.password=1234
2、创建一个类 名为JDBCPropertis,在类上添加注解

@ConfigurationProperties(prefix="jdbc"),内容如下
@Data
@ConfigurationProperties(prefix="jdbc")//将application.properties中以jdbc开头的属性注入到该类中
public class JDBCProperties {
    String url;
    String username;
    String password;
    String driverClassName; 
}
3、此时,就可以在@Configuration修饰类中通过@EnableConfigurationProperties注解启用该属性类了,如:
@Configuration
@EnableConfigurationProperties(JDBCProperties.class)//启用JDBCProperties.class的属性生效
public class JdbcConfig {
    
    @Autowired
    JDBCProperties jdbc;
    
    public JdbcConfig(JDBCProperties jdbcProperties){
        this.jdbc = jdbc;
    }
    
    @Bean
    public DataSource dataSource(JDBCProperties jdbcProperties){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(jdbc.url);
        dataSource.setDriverClassName(jdbc.driverClassName);
        dataSource.setPassword(jdbc.password);
        dataSource.setUsername(jdbc.username);
        return dataSource;
    }
}

方式二:直接从属性文件中注入属性:
1、在application.properties配置属性,如:
jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezione=UTC&useUnicode=true&characterEncoding=utf-8
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.username=root
jdbc.password=1234
2、直接在方法上使用注解@ConfigurationProperties(prefix=“jdbc”)指定前缀将属性注入到方法中bean的同名属性中:

@Configuration
public class JdbcConfig {
    
    @Bean
    @ConfigurationProperties(prefix="jdbc")
    public DataSource dataSource(JDBCProperties jdbcProperties){
        DruidDataSource dataSource = new DruidDataSource();
        return dataSource;
    }
}

三、使用yaml编写属性文件,方式和前两个方式一致,只是编写属性文件格式不同,如:
jdbc:
url=jdbc:mysql://localhost:3306/mybatis? serverTimezione=
UTC&useUnicode=true&characterEncoding=utf-8
driverClassName=com.mysql.cj.jdbc.Driver
username=root
jpassword=1234

首页定制:默认会到静态资源路径(static、public等)找index.html当首页,静态资源路径可以直接通过资源路径访问,类似web-app下,而templates下的页面必须通过控制器跳转,客户端不能直接访问,类似于WEB-INF目录,当导入thymeleaf的依赖后,会默认注册ThymeleafViewResolver视图解析器,该视图解析器会将返回的逻辑视图名加前缀classpath:/templates,后缀加.html,得到实际逻辑视图,也可以通过配置改变该前后缀配置。

扩展Spring mvc的配置,支持如下扩展配置:
1、视图解析器:ContentNegotiatingViewResolver代理,BeanNameViewResolver的扩展,配置自定义视图解析器
2、自定义Converter、GenericConverter转换器和Formatter格式化器
3、自定义HttpMessageConverter消息转换器
4、自定义指定首页
5、自定义页面图片favicon
6、web的一些初始化指定(ConfigurableWebBindingInitilizer)
配置以上的扩展,需要创建一个类,使用@Configuration修饰,并实现WebMvcConfigurer接口,且该类不能使用@EnableWebMvc修饰(该注解导入了DelegatingWebMvcConfiguration类,该类会从容器中获取所有的webMvcConfig,但自动配置类WebMvcAutoCOnfiguration必须在某些类不存在的时候才生效,该注解获取的类中包含了这些类,将会导致WebMvcConfiguration失效),扩展Mvc配置会在下一章节分享。

SpringBoot提供了大量的自动配置类,这些配置类以及依赖的核心包都封装到各种启动器starter当中,启动器如下:
在这里插入图片描述

依赖文件pom.xml:

org.springframework.boot spring-boot-starter-parent 2.4.5 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-devtools org.projectlombok lombok true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值