让我们快速构建项目并且运行,他就是搭建程序的脚手架
尽可能减少一切xml的相关配置
快速创建一个spring boot的启动项目
在pom.xml中导入父类的启动器
引入父类的依赖
下面我们写一个web的启动器
这个启动器导入了之后
整个web项目需要的依赖也就导入了
并且把版本也是已经控制好了
下面去做一个配置类来配置一下这个Springboot
写一个controller类来测试一下
java配置
之前我们就用过xml配置类干掉过Spring的xml文件
有些对象可以在直接通过注解注入到spring容器里面,但是有些配置注解就不方便使用了
比如说下面这个配置
上面就是之前在spring里面提供了一个数据查询的对象,同时提供了一个数据库连接池的数据源
我们还是去吧xml干掉,通过java类来进行配置
我们在前在做spring整合mybatis的时候,做了这样一件事
我们现在的目的是把数据库连接池的部分弄到java类里面,这里面数据连接池就先选择durid数据库连接池作为数据源
先在resources下面弄一个数据库连接池的的属性配置文件
因为我们要配置是这个DataSource的这个数据源,所以弄一个配置文件叫JdbcConfig
忘了有一个Druid的依赖还没有导入
下面继续去处理这个config的配置文件
package com.pxx.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import javax.sql.DataSource;
/**
* Created by Administrator on 2023/1/28.
*/
@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {
//把这些值从配置文件当中引入过来
@Value("${jdbc.driver}")
String driverClassName;
@Value("${jdbc.url}")
String url;
@Value("${jdbc.username}")
String username;
@Value("${jdbc.password}")
String password;
@Bean
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
}
然后去到Controller里面配置一下
项目如果变量不出现看一下是不是没有运行这个程序到这个位置
SpringBoot属性注入方式1
在说第一种方式属性注入之前,讲一个依赖包
这个依赖包是在父类项目中存在的
这个包的作用是
再来说spring注入属性的方式
第一:默认配置文件名字必须是:application.properties或者application.yml这个名字
先来修改之前的jdbc.properties的配置文件
还是要在pom.xml中把相关依赖导入一下
这个注解会自动给我们生成相关的set与get等各种方法
然后我们再去JdbcConfig的配置文件处理一下
上面这部分先直接注释起来
之前用了lombok的Data注解发现属性还是没有生成Get与Set方法,才发现是在IDEA里面没有引入lombok插件
可以从如下位置下载并安装
Releases · mplushnikov/lombok-intellij-plugin · GitHub
打断点,运行一下项目,看一下内存的实际情况
上面就是一种方式
spring boot属性注入2另外一种更优雅的方式
还是做好一个属性类,但是没有在这加@ConfigurationProperties(prefix="jdbc")这个注解
然后到我们的JdbcConfig里面
这个引入属性类的注解都可以不要了
同时这个属性类其实已经被干掉了
因为我们没有去添加ConfigurationProperties这个注解,就不会从配置文件中去找值,也不会产生一个对象在spring里面
我们变到了另外一个位置去引入值
也就是利用DataSource里面的set方法给属性赋值,前提是DataSource类里面的属性名与配置文件的属性名字保持一致
但是这里我报了一个错
这个问题就是说,DataSource里面的属性与jdbc配置文件的属性名字不一致造成的
把配置文件名改一下,因为DataSource已经封装好了,动不了
SpringBoot的注入原理