跳转至
#java  #spring 
本文阅读量 

Spring中使用java代码配置#

在Spring中也可以使用java代码进行spring的配置,这种方式相比xml更加的灵活

package top.longlone;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;

@Configuration
public class AppConfig {

    @Bean
    @Scope("singleton")
    public User user() {
        return new User();
    }
}

这相当于xml配置中的
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       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 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <bean id="user" class="top.longlone.User"/>
</beans>

这里也有一些相关常用的注解

相关注解#

@Configuration#

这是一个配置类的注解,用于配置其他bean

@Import#

相当于xml中的<import>标签,用于包含其他配置类

CompoentScan#

在java类代码中每次创建一个bean都需要在配置类中写一个方法,这样很不方便,所以可以使用包扫描的方式,相当于xml中的<context:component-scan base-package=""/>

package top.longlone;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;

@Configuration
@ComponentScan({"top.longlone"})
public class AppConfig {

    @Bean
    @Scope("singleton")
    public User user() {
        return new User();
    }
}

总结#

这种配置类经常见于SpringBoot中。是spring4之后推荐使用的配置方式。它和xml配置文件任选其一作为spring的配置方式即可。

回到页面顶部