controller、service、Repository、Component 、Configuration
package com.java.ioc;
import com.java.ioc.Controller.HelloController;
import com.java.ioc.rep.UserRepository;
import com.java.ioc.service.UserService;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
//告诉Spring帮我们管理对象,ioc:五个类注解:controller
ConfigurableApplicationContext context= SpringApplication.run(DemoApplication.class, args);
1.// HelloController tean=context.getBean(HelloController.class);
// tean.prin();
// //等于HelloController helloController=new HelloController();
// //helloController.prin();
2.// HelloController bean2=(HelloController) context.getBean("helloController");
// bean2.prin();
3.// HelloController tean1=(HelloController) context.getBean("aaa");//@Controller("aaa")重命名
// tean1.prin();
4.// HelloController bean3=context.getBean("helloController",HelloController.class);
// bean3.prin();
//
// //ioc:类注解:service
// UserService dean1=context.getBean(UserService.class);
// dean1.p();
//
// //ioc:类注解:Repository
// UserRepository dean2=context.getBean(UserRepository.class);
// dean2.p();
//
//ioc:类注解:Component
//ioc:类注解:Configuration
}
}
eg:
相同点:Component的衍生注解
不同点:
@Controller:控制层,接收参数
(控制层必须使用Controller,其他可以替换但不建议,因为不同注解含义不同可能存在不必要麻烦)
@Service:业务逻辑层
@Repository:数据层
@Configuratrin:配置层
@Component:组件层(但边界不是很清晰)
@Bean


//Spring默认扫描路径为启动类所在路径
//@ComponentScan("com.java.ioc")//加这个后以这个为准@SpringBootApplication//启动类