服務(wù)
public class FunctionService {
public String sayHello(){
return "Hello" + word + "!";
}
}
調(diào)用
public class UseFunctionService{
FunctionService functionService;
//注入成功
public void setFunctionService(FunctionService functionService){
this.functionService = functionService;
}
//這個相當于調(diào)用工具,調(diào)用sayHello的實現(xiàn)
public String sayHello(){
return functionService.sayHello();
}
}
這就相當于是一個XML配置,注入了兩個Bean
@Configuration
public class JavaConfig{
//這個相當于是get方法了,給這個返回的對象添加上注解,那么這個FunctionService就是一個Bean了
@Bean //2
public FunctionService functionService (){
return new FunctionService();
}
@Bean
public UseFunctionService useFunctionService(){
//初始化
UseFunctionService useFunctionService = new useFunctionService();
//將useFunctionService中需要用到的FunctionService注入
useFunctionService.setFunctionService(functionService ());
//將useFunctionService返回
return useFunctionService;
}
}
java配置是spring4.X所推薦的配置方式 像上面兩個Bean 就是用JavaConfig用作配置文件來加載
加載方法:
//這是掃描配置文件方法
ApplicationContext application = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-solr.xml");
//這是Java配置的方法
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);
使用@Configuration注解表明當前類是一個java配置類,這意味著這個類中可能有0個或者多個@bean注解,這里我們就沒用包掃描,因為所有的bean一共就兩個憎蛤,都在這個類中定義了
另外一種注入方式.如上,一個Bean中調(diào)用另外一個Bean,只要這個Bean被聲明過了,那么他就可以在別的類中以參數(shù)注入
### 使用@Bean注解聲明當前方法FunctionService的返回值是一個Bean,Bean的名稱就是方法名
這就是java中Bean的配置