spring的IOC的注解
这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能,本篇分享的是: 【spring的IOC的注解】 【修真院java小课堂】spring的IOC的注解 开场语: 大家好,我是IT修真院上海分院第10期的学员洪阳,今天给大家分享一下,修真院官网java任务1,深度思考中的知识点——spring的IOC的注解. (1)背景介绍: 传统的xml配置完成IOC,如果内容比较多则配置需花费很多时间,通过注解可以减轻工作量,但注解后修改要麻烦一些,偶合度会增加,应该根据需要选择合适的方法[1]。 (2)知识剖析: 在类上增加了一个注解Component,在类的开头使用了@Component注解,它可以被Spring容器识别,启动Spring后,会自动把它转成容器管理的Bean。 除了@Component外,Spring提供了3个功能基本和@Component等效的注解,分别对应于用于对DAO,Service,和Controller进行注解。 1:@Service用于注解业务层组件(我们通常定义的service层就用这个) 2:@Controller用于注解控制层组件(如struts中的action) 3:@Repository用于注解数据访问组件,即DAO组件 4:@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行注解。 singleton---单例 ?只创建一个对象。 prototype---原型 ?想创建多少个就创建多少了。 request---针对Web项目,不同的请求创建单独的Bean对象,同一个请求共享一个Bean。 session---针对Web项目,不同的会话创建单独的Bean对象,同一个会话共享一个Bean。 (3)常见问题: @Component@Service@Controller@Repository@Component是否一样,使用时要不要区分 (4)解决方案: 这几个注解不同于上面的注解,上面的注解都是将被依赖的bean注入进入,而这几个注解的作用都是生产bean,这些注解都是注解在类上,将类注解成spring的bean工厂中一个一个的bean。@Controller,@Service,@Repository基本就是语义更加细化的@Component。 (5)编码实战: @Component("user") public class User { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } ---------------------? @Component(value="user") public class User { @Value("1") private Integer id; @Value("lzgsea") private String name; public Integer getId() { return id; } //@Value("1") public void setId(Integer id) { this.id = id; } public String getName() { return name; } //@Value("lzgsea") public void setName(String name) { this.name = name; } } ---------------------? (6)拓展思考: Spring中的注解大概可以分为两大类: 1)spring的bean容器相关的注解,或者说bean工厂相关的注解; 2)springmvc相关的注解。 spring的bean容器相关的注解,先后有:@Required, @Autowired,@PostConstruct,@PreDestory,还有Spring3.0开始支持的JSR-330标准javax.inject.*中的注解(@Inject,@Named,@Qualifier,@Provider,@Scope,@Singleton). springmvc相关的注解有:@Controller,@RequestMapping,@RequestParam, @ResponseBody等等。 要理解Spring中的注解,后续还要先要理解Java中的注解。 (7)参考文献: lzgsea ?- CSDN - Spring注解详解 - https://blog.csdn.net/lzgsea/article/details/79829544 [1] (8)更多讨论: Q1:提问人:XML和注解各自有什么优缺点 A1:回答人:XML:可以适用任何场景; 结构清晰,维护方便.注解:有些地方用不了,这个类不是自己提供的,开发方便. Q2:提问人:IOC是什么 A2:回答人:Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。 (9)鸣谢: 感谢师兄对我无微不至的日程提醒,此教程是在他们之前技术分享的基础上完善而成。 (10)结束语: 今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~ PPT链接?视频链接 更多内容,可以加入IT交流群565734203与大家一起讨论交流 这里是技能树·IT修真院:,初学者转行到互联网的聚集地 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |