Spring IOC(五个类注解)
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:组件层(但边界不是很清晰)