1.Spring Boot属性注入的两种方式
.
- 使用@ConfigurationProperties 编写配置项类将配置文件中的配置项设置到对象中
/**
* ConfigurationProperties 从application 配置文件中读取配置项
* prefix 表示配置项的前缀
* 配置项类中的类变量名必须要与前缀之后的配置项名称保持松散绑定
*/
@Configuration
@ConfigurationProperties(prefix="jdbc")
public class JdbcProperties {
private String url;
private String driverClassName;
private String username;
private String password;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getDriverClassName() {
return driverClassName;
}
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
- 使用@ConfigurationProperties在方法上用
@Bean
@ConfigurationProperties(prefix ="jdbc")
//声明要注入的属性前缀,Spring Boot会自动把相关的属性通过set方法注入到DataSourse
public DataSource dataSourse() {
return new DruidDataSource() ;
}
2.多个yml文件的配置
yml文件与properties配置文件除了展示形式不同以为,其他功能和作用都是一样的;在项目中原路读取的方式不需要改变
yml文件的特征
1.树状层级结构展示配置昂
2.配置项之间如果有关系的需要分行空两格
3.配置项如果有值的话那么需要在:号之后空一格再写配置项`
#多个yml文件需要激活,激活配置文件需要指定其他的配置文件名称,新建一个application-abc.yml文件
spring:
profiles:
active: abc
jdbc:
driverClassName: com.mysql.jdbc.Driver
url:jdbc:mysql: 127.0.0.1:3306/db1
username: root
password: root
spring:
profiles:
active: abc
3.lomBOK应用
使用lombok 的注解实现pojo类的简化
分析
-
将数据库表数据导入数据库中
-
编写数据库表中的对应得实体类,一般要编写set /get 方法,这会让实体类看起来更加得臃肿,可以使用lombok插件对实体类进行简化
lombok 是一个插件工具包,提供了一些注解@Data ,@Getter 等这些注解去简化实体类中得构造方法、get/set方法
1.在idea安装lombok插件;
2.添加lombok对应的以来到项目pom,xml文件
3.改造实体类使用lombok注解
import lombok.Data;
import java.util.Date;
//在编译阶段会根据注解自动生成对应的方法,data包含get/set/hashCode/equals/toString等方法
@Data
public class User {
private long id;
private String userName;
private String password;
private String name;
private Integer age;
private Integer sex;
private Date birthday;
private String note;
private Date created;
private Date updated;
}