@Bean使用

作者: 传葱 | 来源:发表于2019-07-04 11:40 被阅读0次

@Bean

  • @Bean 作用在方法,用在@Configuration注解下,返回值可以通过BeanFactory注入位Bean。
  • Spring-boot通常用在启动的时候自定义Bean的注入
  • 代码demo:http://zetcode.com/springboot/bean/
  • 源码解析:未完待续....
package com.zetcode;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class Application implements CommandLineRunner {

    private static final Logger logger = LoggerFactory.getLogger(Application.class);

    @Autowired
    private AppName appName;//AppName是个接口,没有具体实现,只有
                                                 //AppName getAppName(String appName) 方法定义

    @Bean
    public AppName getAppName(@Value("${app.name}") String appName) {
        //返回的对象注入Spring容器中存储
        return () -> appName;
    }

    @Override
    public void run(String... args) throws Exception {

        logger.info("Application name: {}", appName.getName());
    }

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

相关文章

网友评论

    本文标题:@Bean使用

    本文链接:https://www.haomeiwen.com/subject/gjylhctx.html