第一章 Spring基础
1.3 Spring 基础配置
1.3.2 Java配置
Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置;java配置也是Spring boot推荐的配置方式。
<b> Java配置是通过@Configuration和@Bean来实现的。</b>
- @Configuration声明当前类是一个配置类,相当于一个Spring配置的xml文件。
- @Bean注解在方法上,声明当前方法的返回值为一个Bean。
@Configuration //1
public class JavaConfig {
@Bean //2
public FunctionService functionService() {
return new FunctionService();
}
@Bean
public UseFunctionService useFunctionService() {
UseFunctionService useFunctionService = new UseFunctionService ();
useFunctionService.setFunctionService(functionService()); //3
return useFunctionService;
}
//@Bean
//public UseFunctionService useFunctionService(FunctionService functionService) { //4
// UseFunctionService useFunctionService = new UseFunctionService ();
// useFunctionService.setFunctionService(functionService);
// return useFunctionService;
// }
}
- 使用@Configuration注解表明当前类是一个配置类。
- 使用@Bean注解声明当前方法的返回值是一个Bean,Bean的名称是方法名。
- 调用方法来注入Bean。
- 另外一种注入方式:在Spring容器中,只要存在某个Bean,就可以在另一个Bean的声明方法的参数中注入。
1.3.3 AOP
使用@EnableAspectJAutoProxy注解开启Spring对AspectJ的支持。
第二章 Spring常用配置
2.1 Bean的Scope
@Scope注解
(1) singleton:一个Spring容器中只有一个Bean实例,<b>此为Spring的默认配置,全容器共享一个实例</b>
(2) prototype : 每次调用都会新建一个Bean的实例。
(3) request : Web项目中,每个http request都会新建一个Bean的实例。
(4) session : Web项目中,每个http session都会新建一个Bean的实例。
(5) golobalSession : 这个只在portal应用中有用,给每个global http session新建一个Bean的实例。
@Service
@Scope("prototype")
public class DemoPrototypeService {
}