@Configuration和@Bean 配置类注入

Posted a-fm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Configuration和@Bean 配置类注入相关的知识,希望对你有一定的参考价值。

@Configuration和@Bean

1. 概述

@Configuration 注解标记在类上, 就像下面的配置文件. 我们将该类成为配置类.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="userService" class="com.funtl.hello.spring.service.impl.UserServiceImpl" />
</beans>

@Bean 标记在方法上, 方法的返回值相当于向SpringIOC容器注入一个Bean. 其中, 返回值相当于xml文件bean标签的class属性, 方法的名称相当于id属性. 我们的property属性被放置在了方法之中进行实现. @Bean 注解有一个属性, name属性 可以帮助我们指定Beanid的名字 .

2. 实例

Spring Boot实现后端Validator 验证 .

<!-- 配置 Bean Validator 定义 -->
<bean id="validator" class="javax.validation.Validator"/>
<bean id="beanValidator" class="com.funtl.my.shop.commons.validator.BeanValidator">
    <property name="validator" ref="validator" />
</bean>

改成配置类

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import pers.ycy.blog.utils.BeanValidator;

import javax.validation.Validator;

@Configuration
public class AutoWired {

    private final Validator Validator;
    public AutoWired(Validator Validator) {
        this.Validator = Validator;
    }
    @Bean(name="beanValidator")
    public BeanValidator getBeanValidator(){
        return new BeanValidator(Validator);
    }
}

以上是关于@Configuration和@Bean 配置类注入的主要内容,如果未能解决你的问题,请参考以下文章

@Configuration与@Bean作用

016 @Configuration和@Bean

@Configuration和@bean给容器中注册组件

Spring中基于Java的配置@Configuration和@Bean用法 (转)

Spring @Configuration @Bean 给容器中注册组件

Spring整理系列(11)——@Configuration注解@Bean注解以及配置自动扫描bean作用域