FunctionService:业务类(注意:没有@Service注解)
package bw.swn.boot.service;
public class FunctionService {
public String sayHello(String name) {
return "Hello "+name+" !";
}
}
UseFunctionService:调用类
package bw.swn.boot.service;
public class UseFunctionService {
private FunctionService functionService;
public FunctionService getFunctionService() {
return functionService;
}
public void setFunctionService(FunctionService functionService) {
this.functionService = functionService;
}
public void show(String name) {
System.out.println(this.functionService.sayHello(name));
}
}
IocConfig:装配类(这里@Bean注解的作用是完成对象创建,注意其方法的名称就是返回值)
package bw.swn.boot.service;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class IocConfig {
@Bean
public FunctionService functionService() {
return new FunctionService();
}
@Bean
public UseFunctionService useFunctionService() {
UseFunctionService useFunctionService=new UseFunctionService();
useFunctionService.setFunctionService(functionService());
return useFunctionService;
}
}
启动测试类:
package bw.swn.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import bw.swn.boot.service.IocConfig;
import bw.swn.boot.service.UseFunctionService;
@SpringBootApplication
public class SpringIocApplication {
public static void main(String[] args) {
SpringApplication.run(SpringIocApplication.class, args);
AnnotationConfigApplicationContext ctx=
new AnnotationConfigApplicationContext(IocConfig.class);
UseFunctionService use=ctx.getBean(UseFunctionService.class);
use.show("spring boot");
ctx.close();
}
}
输出结果: