业务需求
说明:当spring整合第三方架构时,有些类中要求实例化对象时要求赋值某些属性,这时需要利用spring容器的方式为属性赋值
1.利用YML形式为属性赋值
server:
port: 8091
servlet:
context-path: / #默认的发布路径就是 /
#案例1.为属性赋值 YML中可以写中文,但是开发时一般不用
jdbc:
url: mysql的url
driverName: mysql数据库
username: 用户名A
2.利用@Value为属性赋值
3.@RestController介绍
@RestController注解就是@Controller+@ResponseBody的组合注解
//@Controller +@ResponseBody
@RestController
public class JDBCController {}
4.批量赋值
业务需求:有些框架中要求实例化对象时,需要为N多个属性赋值.如果这时依然采用@value赋值形式 太繁琐,所以使用批量赋值的形式操作.
4.1引入jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
4.2编辑YML配置文件
#案例2 为属性批量赋值
jdbcb:
jdbcName: mysql
jdbcDriver: mysql驱动
4.3批量为属性赋值
使用注解 @ConfigurationProperties(prefix=“jdbcb”),额外记住添加set方法.
@Service
@ConfigurationProperties(prefix="jdbcb")
public class JDBCServiceB {
//规定:如果采用批量赋值的形式,
//一定要添加set方法.
private String jdbcName;
private String jdbcDriver;
public String getJdbcName() {
return jdbcName;
}
public void setJdbcName(String jdbcName) {
this.jdbcName = jdbcName;
}
public String getJdbcDriver() {
return jdbcDriver;
}
public void setJdbcDriver(String jdbcDriver) {
this.jdbcDriver = jdbcDriver;
}
}
4.4编辑测试类
@Autowired
private JDBCServiceB jdbcServiceB;
//2.测试批量赋值操作
@RequestMapping("/jdbcTestB")
public JDBCServiceB jdbcTestB() {
return jdbcServiceB;
}
4.5测试效果
5.指定配置文件为属性赋值.
5.1 业务说明
YML文件是SpringBoot程序中最为重要的核心配置文件.一般用来整合第三方框架.
如果将依赖的配置信息也写入YML中,则文件冗余.可读性差.
所以一般采用properties的方式引用.
5.2 自定义properties文件
#key=value
jdbcc.jdbcName=mysqlName
jdbcc.jdbcDriver=mysqlDriver
5.3 对象赋值操作
说明:指定配置文件为属性赋值.
@Service
//自定义配置文件交给spring容器管理
@PropertySource(value="classpath:/properties/jdbc.properties")
public class JDBCServiceC {
@Value("${jdbcc.jdbcName}")
private String jdbcName;
@Value("${jdbcc.jdbcDriver}")
private String jdbcDriver;
public String getJdbcName() {
return jdbcName;
}
public void setJdbcName(String jdbcName) {
this.jdbcName = jdbcName;
}
public String getJdbcDriver() {
return jdbcDriver;
}
public void setJdbcDriver(String jdbcDriver) {
this.jdbcDriver = jdbcDriver;
}
}
5.4 编辑测试类
@Autowired
private JDBCServiceC jdbcServiceC;
//3.测试自定义配置文件
@RequestMapping("/testJDBCC")
public JDBCServiceC testJDBCC() {
return jdbcServiceC;
}
5.5 测试效果