@Bean使用
2019-07-04 本文已影响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);
}
}