spring的IOC的注解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jnshu_it/article/details/84615461

这里是修真院后端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析后端知识/技能,本篇分享的是:

【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修真院:https://www.jnshu.com,初学者转行到互联网的聚集地

猜你喜欢

转载自blog.csdn.net/jnshu_it/article/details/84615461