Spring使用基于Java的配置

创建基于Java的配置

<context:component-scan base-package=”com.springaction.springidol” />会自己加载使用@Configuration注解标注的类。

定义一个配置类

在基于Java的配置里使用@Configuration注解的Java类等价于XML配置中元素。

1
2
3
4
@Configuration
public class SpringidolConfig {

}

@Configuration注解会作为一个标示告知Spring:这个类将包含一个或者多个Spring Bean的定义。这些Bean的定义是使用@Bean注解所标注的方法。

## 声明一个简单的Bean

1
2
3
4
@Bean
public User user() {
return new User();
}

该方法名将作为Bean的ID。
使用Java配置相对于XML配置的一个优点:
在XML配置中,Bean的类型和ID都是由Spring属性来标示的。Spring表示符的缺点是它们无法在编译器检查。如果重新命名了User类或许会忘记 修改相对应的XML属性。
上面的配置文件中使用了Java配置类的三个常用Annotation。
@Configuration:用于修饰一个Java配置类。
@Bean:用于修饰一个方法,将该方法的返回值定义成容器中的一个Bean。
@Value:用于修饰一个Field,用于为该Bean配置一个值,相当于配置一个常量。
除了上面的的注解外,在使用Java的配置类时候还有几个常用的Annocation。
– @Import:修饰一个Java配置类,用于向当前Java配置类中导入其他Java配置类
– @Scope:用于修饰一个方法,指向该方法对应Bean的作用域
– @Lazy:用于修饰一个方法,用于指定该方法对应的Bean是否需要延迟初始化
– @DependsOn:用于修饰一个方法,指定在初始化该方法对应Bean之前初始化指定Bean。

分享到