Spring Boot文档阅读笔记-Spring Boot @Bean解析
发布日期:2021-06-30 10:46:59 浏览次数:2 分类:技术文章

本文共 3159 字,大约阅读时间需要 10 分钟。

利用SpringBoot的@Bean创建一个简单的Bean。

Spring的@Bean注解是放在方法上的,带上这个注解的方法会被Spring容器管理。并且这个方法要返回一个值(对象),这个值和对象会被BeanFactory注册为Bean。

下面是一个例子

程序运行截图如下:

项目结构如下:

pom.xmlsrc├───main│   ├───java│   │   └───cn│   │       └───it1995│   │               DemoApplication.java│   │               AppName.java│   └───resources│           application.properties│           logback.xml└───test    └───java

下面是Maven代码,spring-boot-starer是核心启动包,他包含自动配置、日志、YAML。

4.0.0
org.springframework.boot
spring-boot-starter-parent
2.4.3
cn.it1995
demo
0.0.1-SNAPSHOT
demo
Demo project for Spring Boot
1.8
org.springframework.boot
spring-boot-starter
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
org.projectlombok
lombok

下面定义一个简单的接口,用于返回应用名

package cn.it1995.demo;interface AppName {    String getName();}

application.peroperties文件包含了应用配置的设置。spring.main.banner-mode配置了Spring内部的属性,将其关闭,将spring.main.log-startup-info也关掉。新增app.name这个自定义属性

spring.main.banner-mode=offspring.main.log-startup-info=falseapp.name=SpringBootBean

下面是logbak.xml文件,用于配置日志的。设置日志等级为ERROR。这个功能是在spring-boot-starter包中的。

下面是启动类,包含bean的创建

package cn.it1995.demo;import org.springframework.beans.factory.annotation.Value;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.CommandLineRunner;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.annotation.Bean;@SpringBootApplicationpublic class DemoApplication implements CommandLineRunner {    private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class);    public static void main(String[] args) {        SpringApplication.run(DemoApplication.class, args);    }    @Override    public void run(String... args) throws Exception {        logger.info("Application name: {}", appName.getName());    }    @Autowired    private AppName appName;    @Bean    public AppName getAppName(@Value("${app.name}") String appName) {                return () -> appName;    }}

@SpringBootApplication开启了自动装配和组建扫描;

@Autowired注解获将AppName的Bean注入进去了;

@Bean用于创建一个Bean,让Spring容器进行管理;

@Value获取application.properties中app.name的值。

 

源码打包下载地址:

 

转载地址:https://it1995.blog.csdn.net/article/details/115326467 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Spring Cloud笔记-eureka及openfeign基本使用
下一篇:Spring Boot笔记-@ComponentScan初步解析

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月14日 22时12分05秒