java配置是通过@Configuration和@Bean实现的
@Configuration:声明当前类为配置类,相当于xml配置文件
@Bean:注解在方法上,表示该方法返回一个Bean
1、功能类的Bean
public class FunctionService02 {
public String sayHello(String name) {
return "Hello "+name+" !";
}
}
该类中省略@Service注解
2、使用功能类的Bean
public class UseFunctionService02 {
FunctionService02 functionService;
public void setFunctionService(FunctionService02 functionService) {
this.functionService = functionService;
}
public String sayHello(String name) {
return functionService.sayHello(name);
}
}
该类中省略@Service和@Autowried注解,
@Autowried注解使用setter方法替换,setter方法在配置类中,对FunctionService02对象进行实例化
3、配置类
@Configuration
public class JavaConfig {
@Bean
public FunctionService02 functionService() {
return new FunctionService02();
}
@Bean
public UseFunctionService02 useFunctionService02() {
UseFunctionService02 useFunctionService02 = new UseFunctionService02();
useFunctionService02.setFunctionService(functionService());
return useFunctionService02;
}
}
实例化FunctionService02对象
实例化UseFunctionService02对象,并将实例化的FunctionService02对象,注入到UseFunctionService02类中,因此可在UseFunctionService02中调用FunctionService02中的方法。
4、运行类
public class App {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);
UseFunctionService02 useFunctionService02 = context.getBean(UseFunctionService02.class);
String sayHello = useFunctionService02.sayHello("xiao hong");
System.out.println(sayHello);
context.close();
}
}