一、全局默认配置文件
application.yml和application.properties两种
1、application.yml
person:
name: zhangsan
age: 20
boos: True
map: {k1: v1,k2: v2}
list:
-李四
-王五
dog:
name: 小黄
age: 5
2、application.properties
person.age=30
person.name=张三
person.boss=false
person.map.k1=40
person.dog.name=李四
3、calss文件
/**
*将配置文件的属性映射到组件
* @ConfigurationProperties 告诉springboot将本类所有属性和配置文件绑定
* @Component 容器
* @Validated 数据校验
*/
@Component
@ConfigurationProperties(prefix = "person")
@Validated
public class person {
//用来校验是否邮件
@Email
public String name;
//
// @value("#{11*2}")
public Integer age;
public Boolean boss;
public Map<String,Object> map;
public Dog dog;//dog有name和age两个属性
public List<Object> list;
@Override
public String toString() {
return "person{" +
"name='" + name + '\'' +
", age=" + age +
", boss=" + boss +
", map=" + map +
", dog=" + dog +
", list=" + list +
'}';
}
// .........省略get和set
}
3、单元测试
@SpringBootTest
class Test2ApplicationTests {
//注入
@Autowired
person myperson;
@Test
void contextLoads() {
System.out.println(myperson);
}
4、注解@value和@ConfigurationProperties的区别
二、指定配置文件
@PropertySource 只能用于properties文件)结合读取指定文件。加载指定配置文件,适用于全局默认配置文件太大了,可以考虑指定配置文件。
建立一个properties文件,名字看着取。
``
三、传统bean风格的xml配置(不推荐)
1、建立一个bean.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="hlloServic" class="com.my.test2.service.HelloServic"></bean>
</beans>
2、main类加注解
//读取spring配置bean,加载到容器里面 Springboot不推荐,推荐通过配置类加注解形式
@ImportResource(locations = {"classpath:bean.xml"})
@SpringBootApplication
public class Test2Application {
public static void main(String[] args) {
SpringApplication.run(Test2Application.class, args);
}
}
3、创建一个测试类
public class HelloServic {
}
4、代码测试容器是否通过配置生成对象
@SpringBootTest
class Test2ApplicationTests {
@Autowired
ApplicationContext ioc;
//测试是否读取xml的bean
@Test
void test2()
{
boolean t=ioc.containsBean("hlloServic");
System.out.println(t);
}
如果打印输出是true表示容器有这个对象了
四、给容器添加组件的方式(推荐)
1、MyAppConfig配置类
/**
* @Configuration: 指明当前类是一个配置类:就是来替代之前的Spring配置文件
* 在配置文件中用<bean><bean/>标签添加组件
*/
@Configuration
public class MyAppConfig {
//将方法的返回值添加到容器中,容器中这个组件默认的id就是方法名
@Bean
public HelloServic helloServic()
{
System.out.println("配置类bean给容器添加组件");
return new HelloServic();
}
}
2、单元测试
@SpringBootTest
class Test2ApplicationTests {
@Autowired
ApplicationContext ioc;
//测试是否读取xml的bean
@Test
void test2()
{
boolean t=ioc.containsBean("hlloServic");
System.out.println(t);
}
如果打印输出是true表示容器有这个对象了
3、和xml配置比较
显然这种全注解的方式更方便,springboot更推荐这种方式