服务
public class FunctionService {
public String sayHello(){
return "Hello" + word + "!";
}
}
调用
public class UseFunctionService{
FunctionService functionService;
//注入成功
public void setFunctionService(FunctionService functionService){
this.functionService = functionService;
}
//这个相当于调用工具,调用sayHello的实现
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中调用另外一个Bean,只要这个Bean被声明过了,那么他就可以在别的类中以参数注入
### 使用@Bean注解声明当前方法FunctionService的返回值是一个Bean,Bean的名称就是方法名
这就是java中Bean的配置
网友评论