@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);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章