Springbootユニットテストymlファイルの読み取り

18810 ワード

pomファイル構成
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--    @ConfigurationProperties    -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.40</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>java-noob</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

ymlファイル構成
service:
  applyList: [{"fruit":"apple","interest":"hisrory"},{"fruit":"orange","interest":"music"}]

クラスの構成
@Component
@ConfigurationProperties(prefix = "service")
public class Service
{
    @Getter
    @Setter
    private JSONObject bannerPicList = new JSONObject(true);

    @Override
    public String toString()
    {
        return "Service{" +
            "applyList='" + applyList+ '\'' +
            '}';
    }
}

ユニットテストクラス
@RunWith(SpringRunner.class)
@SpringBootTest
public class JavaNoobApplicationTests
{
    @Autowired
    private Service service;
    
    @Test
    public void contextLoads()
    {
        System.out.println(service);
    }
}

なお、ymlファイルからjson文字列を読み込む場合は、コンフィギュレーションクラスでJSONObjectタイプを指定する必要がありますが、yml形式のリストにmap形式が含まれているように構成することもできます.