第一章 Spring基礎(chǔ)
1.3 Spring 基礎(chǔ)配置
1.3.2 Java配置
Java配置是Spring4.x推薦的配置方式,可以完全替代xml配置;java配置也是Spring boot推薦的配置方式。
<b> Java配置是通過@Configuration和@Bean來實(shí)現(xiàn)的。</b>
- @Configuration聲明當(dāng)前類是一個(gè)配置類,相當(dāng)于一個(gè)Spring配置的xml文件。
- @Bean注解在方法上,聲明當(dāng)前方法的返回值為一個(gè)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注解表明當(dāng)前類是一個(gè)配置類。
- 使用@Bean注解聲明當(dāng)前方法的返回值是一個(gè)Bean,Bean的名稱是方法名。
- 調(diào)用方法來注入Bean。
- 另外一種注入方式:在Spring容器中,只要存在某個(gè)Bean,就可以在另一個(gè)Bean的聲明方法的參數(shù)中注入。
1.3.3 AOP
使用@EnableAspectJAutoProxy注解開啟Spring對AspectJ的支持。
第二章 Spring常用配置
2.1 Bean的Scope
@Scope注解
(1) singleton:一個(gè)Spring容器中只有一個(gè)Bean實(shí)例,<b>此為Spring的默認(rèn)配置,全容器共享一個(gè)實(shí)例</b>
(2) prototype : 每次調(diào)用都會(huì)新建一個(gè)Bean的實(shí)例。
(3) request : Web項(xiàng)目中,每個(gè)http request都會(huì)新建一個(gè)Bean的實(shí)例。
(4) session : Web項(xiàng)目中,每個(gè)http session都會(huì)新建一個(gè)Bean的實(shí)例。
(5) golobalSession : 這個(gè)只在portal應(yīng)用中有用,給每個(gè)global http session新建一個(gè)Bean的實(shí)例。
@Service
@Scope("prototype")
public class DemoPrototypeService {
}