欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot:@Configuration&@Bean

程序员文章站 2022-07-10 21:09:31
...
Configuration:减少xml中配置,可以生命一个配置类来对bean进行配置
=======================================================
SpringConfig.java
============================
package org.spring.springboot.configs;

import org.spring.springboot.web.Student;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SpringConfig {

    @Bean(name = "StudentBean")
    public Student student(){
        Student s = new Student();
        s.setName("studentBean");
        return s;
    }

    @Bean(name = "StudentsBean")
    public Student students(@Qualifier("StudentBean")Student student){
        return student;
    }

}
============================
EnviromentConfig.java
通过EnvironmentAware 获取env 来读取properties
============================
@Configuration
public class EnviromentConfig implements EnvironmentAware{

    private RelaxedPropertyResolver propertyResolver;

    /**
     * 这个方法只是测试实现EnvironmentAware接口,读取环境变量的方法。
     */
    @Override
    public void setEnvironment(Environment env) {
        String str = env.getProperty("server.port");
        System.out.println(str);
        propertyResolver = new RelaxedPropertyResolver(env, "server.");
        String value = propertyResolver.getProperty("port");
        System.out.println(value);
    }

}

============================
Controller中调用
============================
@Resource(name = "StudentBean")
    private Student studentBean;

@Resource(name = "StudentsBean")
    private Student studentsBean;

    @RequestMapping("/say")
    public String sayHello() {
        System.out.println(studentBean.getName());
        System.out.println(studentsBean.getName());
        return "Hello,World111!";
    }