SpringBoot属性赋值的方式

业务需求
说明:当spring整合第三方架构时,有些类中要求实例化对象时要求赋值某些属性,这时需要利用spring容器的方式为属性赋值
1.利用YML形式为属性赋值

 server:
  port: 8091
  servlet:
    context-path: /   #默认的发布路径就是 /

#案例1.为属性赋值  YML中可以写中文,但是开发时一般不用
jdbc:
  url: mysql的url
  driverName: mysql数据库
  username: 用户名A

2.利用@Value为属性赋值
SpringBoot属性赋值的方式_第1张图片
3.@RestController介绍
@RestController注解就是@Controller+@ResponseBody的组合注解

//@Controller +@ResponseBody
@RestController
public class JDBCController {}

4.批量赋值
业务需求:有些框架中要求实例化对象时,需要为N多个属性赋值.如果这时依然采用@value赋值形式 太繁琐,所以使用批量赋值的形式操作.

4.1引入jar包

	
		org.springframework.boot
		spring-boot-configuration-processor
		true
	

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测试效果
SpringBoot属性赋值的方式_第2张图片
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 测试效果
SpringBoot属性赋值的方式_第3张图片

你可能感兴趣的:(springboot,Java)