使用配置

1.

Spring Boot提倡零配置,即无xml配置,但是在实际项目中,可能有一些特殊要求你必须使用xml配置,这时候我们可以通过Spring提供的@ImportResource来加载xml配置,例如:

@ImportResource({"classpath:some-context.xml","classpath:another-context.xml"})

2.

在Spring Boot里,我们只需在application.properties定义属性,直接使用@Value注入即可。

application.properties配置:

使用方法:

@RestController
@SpringBootApplication
public class Springboot01Application {

    @Value("${book.author}")
    private String bootAuthor;
    @Value("${book.name}")
    private String bookName;
    @RequestMapping("/")
    String index(){
        return "book name is:"+bookName+"and book author is:"+bootAuthor;
    }

    public static void main(String[] args) {
        SpringApplication.run(Springboot01Application.class, args);
    }
}

打印信息:

3.

上例中使用@Value注入每个配置在实际项目中会显得格外麻烦,因为我们的配置通常会是许多个,若使用上例的方式则要使用@Value注入很多次。

Spring Boot还提供了基于类型安全的配置方式,通过@ConfigurationProperties将properties属性和一个Bean及其属性关联,从而实现类型安全的配置

application.properties:

类型安全的Bean:

package com.bj.ch1.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @Auther: feifei
 * @Date: 2018/10/19 18:13
 * @Description:
 */
@Component
@ConfigurationProperties(prefix = "author")
public class AuthorSettings {
    private String name;
    private String age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
}

检测代码:

package com.bj;

import com.bj.ch1.config.AuthorSettings;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class Springboot01Application {

    @Autowired
   private AuthorSettings authorSettings;
    @RequestMapping("/")
    String index(){
        return "author name is:"+authorSettings.getName()+"and author age is:"+authorSettings.getAge();
    }

    public static void main(String[] args) {
        SpringApplication.run(Springboot01Application.class, args);
    }
}

效果:

猜你喜欢

转载自blog.csdn.net/qq_40775879/article/details/83185751