springboot java配置注解注入Bean

2017-12-05  本文已影响317人  _王仔

服务

public class FunctionService {
    public String sayHello(){
        return "Hello" + word + "!";
    }
}

调用

public class UseFunctionService{
    FunctionService functionService;
    //注入成功
    public void setFunctionService(FunctionService functionService){
        this.functionService = functionService;
    }
    //这个相当于调用工具,调用sayHello的实现
    public String sayHello(){
        return functionService.sayHello();
    }
}

这就相当于是一个XML配置,注入了两个Bean

@Configuration
public class JavaConfig{
    //这个相当于是get方法了,给这个返回的对象添加上注解,那么这个FunctionService就是一个Bean了
    @Bean //2
    public FunctionService functionService (){
        return new FunctionService();
    }

    @Bean
    public UseFunctionService useFunctionService(){
        //初始化
        UseFunctionService useFunctionService = new useFunctionService();
        //将useFunctionService中需要用到的FunctionService注入
        useFunctionService.setFunctionService(functionService ());
        //将useFunctionService返回
        return useFunctionService;
    }   
}

java配置是spring4.X所推荐的配置方式 像上面两个Bean 就是用JavaConfig用作配置文件来加载

加载方法:
//这是扫描配置文件方法

ApplicationContext application = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-solr.xml");

//这是Java配置的方法

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);

使用@Configuration注解表明当前类是一个java配置类,这意味着这个类中可能有0个或者多个@bean注解,这里我们就没用包扫描,因为所有的bean一共就两个,都在这个类中定义了
另外一种注入方式.如上,一个Bean中调用另外一个Bean,只要这个Bean被声明过了,那么他就可以在别的类中以参数注入

### 使用@Bean注解声明当前方法FunctionService的返回值是一个Bean,Bean的名称就是方法名

这就是java中Bean的配置


上一篇 下一篇

猜你喜欢

热点阅读