10.使用Java方式配置Spring
Spring的新Java配置支持中的主要工件是带 @Configuration
注释的类和-带@Bean
注释的方法。
该@Bean
注释被用于指示一个方法实例,可以配置,并初始化到由Spring IoC容器进行管理的新对象。对于那些熟悉Spring的<beans/>
XML配置的人来说,@Bean
注释的作用与<bean/>
元素相同。您可以@Bean
对任何Spring使用带注释的方法 @Component
。但是,它们最常与@Configuration
bean一起使用。
用注释类,@Configuration
表明其主要目的是作为Bean定义的来源。此外,@Configuration
类允许通过调用@Bean
同一类中的其他方法来定义Bean之间的依赖关系。最简单的@Configuration
类如下:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
等价于
<beans>
<bean id="myService" class="com.acme.services.MyServiceImpl"/>
</beans>
代码示例
配置类
@Configuration
@ComponentScan("com.liu.pojo") //扫描 com.liu.pojo 下的所有注释
public class SpringConfig {
@Bean
public Student student() { //Student = class 方法名 = id
return new Student();
}
}
@NoArgsConstructor
@Component //在Java配置中, @Component同样有效 ,配置 @ComponentScan 使得注解可以被扫描到
public class User {
@Value("陆源东")
private String name ;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
@Data
public class Student {
@Value("学生1")
private String name ;
}
public class Test {
@org.junit.Test
public void test(){
//Java配置方法 必须要使用 AnnotationConfigApplicaitonContext(配置类.class)
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
User user = (User) context.getBean("getUser");
System.out.println(user.getName());
}
}
-
既可以通过**@Bean**注解注入类 ,也可以通过 注解进行
-
Java配置必须 使用 AnnotationConfigApplicaitonContext(配置类.class)导入