开发者

SpringBoot给类进行赋初值的四种方式

目录
  • 1. 使用@Value和@ConfigurationProperties
  • 2. 使用@PropertySource
    • 创建Person.Java
    • 创建person.properties
    • 写一个测试类
  • 3. 使用@ImportResource
    • Student类
    • 创建beans.XML
    • 在主类中引入
    • 测试
  • 其他

    1. 使用@Value和@ConfigurationProperties

    这里不加赘述了,前面我也发过,这里就放个链接吧

    @Value获取值和@ConfigurationProperties获取值用法及比较(springboot)

    2. 使用@PropertySource

    创建Person.java

    package com.example.springbootdaily2.model;
    
    import org.springframework.format.annotation.DateTimeFormat;
    
    import java.util.Date;
    import java.util.List;
    import java.util.Map;
    
    @Component
    @PropertySource(value = "classpath:person.properties")
    // 这个是前缀的意思
    @ConfigurationProperties(prefix = "person2")
    public class PersonX {
        private String nahttp://www.devze.comme;
        private Character sex;
        @DateTimeFormat(pattern = "YYYY-MM-SS")
        private Date birthday;
        private Integer age;
        private String address;
        private Map<String, Integer> maps;
        private List<String> lists;
        private Dog dog;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Character getSex() {
            return sex;
        }
    
        public void setSex(Character http://www.devze.comsex) {
            this.sex = sex;
        }
    
        public Date getBirthday() {
            return birthday;
        }
    
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    
        public Dog getDog() {
            return dog;
        }
    
        public void setDog(Dog dog) {
            this.dog = dog;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        public Map<String, Integer> getMaps() {
            return maps;
        }
    
        public void setMaps(Map<String, Integer> maps) {
            this.maps = maps;
        }
    
        public List<String> getLists() {
            return lists;
        }
    
        public void setLists(List<String> lists) {
            this.lists = lists;
        }
    
        @Override
        public String toString() {
            return "Person{" +
                    "name='" + name + '\'' +
                    ", sex=" + sex +
                    ", birthday=" + birthday +
                    ", age=" + age +
                    ", address='" + address + '\'' +
                    ", maps=" + maps +
                    ", lists=" + lists +
                    ", dog=" + dog +
                    '}';
        }
    }
    
    

    创建person.properties

    person2.name="李四"
    person2.sex=男
    person2.birthday=2022-02-07
    person2.age=18
    person2.maps.keys1=16
    person2.maps.keys2=16
    person2.lists=[12,24,57]
    person2.address="保定廉耻"
    person2.dog.name=${random.value}
    

    写一个测试类

    packagexvcGycw com.example.springbootdaily;
    import com.example.springbootdaily.model.Dog;
    import com.example.springbootdaily.model.Person;
    import com.example.springbootdaily.model.Person2;
    import com.example.springbootdaily.model.PersonX;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class SpringTest {
        @Autowired
        PersonX personX;
    
        @Test
        public void print4(){
            System.out.println(personX);
        }
    }
    
    

    输出结果:

    Person{name='"岳轩子"', sex=M, 
    birthday=Sun Dec 26 00:00:00 CST 2021, age=18, 
    address='"保定武汉"', maps={keys2=16, keys1=16}, lists=[[12, 24, 57]], 
    dog=Dog{name='cdab390f55c9f8a6bbb420cd15607add'}}
    

    注:如果显示乱码,设置文件编码为utf-8

    SpringBoot给类进行赋初值的四种方式

    3. 使用@ImportResource

    Student类

    package com.example.springbootdaily.model;
    
    public class Student {
        private String name;
        private Integer age;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        @Override
        public String toString() {
            return "Student{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    }
    
    

    创建beans.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">
    
        <bewww.devze.coman id="student" class="com.example.springbootdaily.model.Student">
            <property name="name" value="李四"/>
            <property name="age" value="18"/>
        </bean>
    </beans>
    

    在主类中引入

    package com.example.springbootdaily;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.ImportResource;
    
    @SpringBootApplication
    @ImportResource(locations = "classpath:beans.xml")
    public class SpringbootDailyApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringbootDailyApplication.class, args);
        }
    
    }
    
    

    测试

    package com.example.springbootdaily;
    
    
    import com.example.springbootdaily.model.*;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    http://www.devze.comimport org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class SpringTest {
        @Autowired
        Student student;
    
        @Test
        public void print5(){
            System.out.println(student);
        }
    }
    
    

    运行结果:

    Student{name='李四', age=18}
    

    其他

    我们可以导入配置文件处理器,以后编写配置就有提示了

    <!‐‐导入配置文件处理器,配置文件进行绑定就会有提示‐‐>

    依赖:

    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring‐boot‐configuration‐processor</artifactId>
         <optional>true</optional>
    </dependency>
    

    以上就是SpringBoot给类进行赋初值的四种方式的详细内容,更多关于SpringBoot给类进行赋初值的资料请关注编程客栈(www.devze.com)其它相关文章!

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜