工作生活

@Bean使用

2019-07-04  本文已影响0人  传葱

@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);
    }
}
上一篇 下一篇

猜你喜欢

热点阅读