spring常用注解总结

@Component
用于描述spring中的bean,泛化概念,仅仅表示一个组件bean,可以作用任何层次。
@Value
将外部的值动态注入到Bean中。
使用的情况:注入普通字符串,注入操作系统属性,注入表达式结果,注入其他Bean属性,
注入beanInject对象的属性another,注入文件资源,注入URL资源
@Repository
用于数据访问层dao层
@Service
用于业务层,service层
@Controller
用于控制层如springmvc的controller ,对应web中servlet实现
@Autowired
用于属性变量及其setter方法和构造方法进行标注,
配合对应的注解处理器完成自动装配
@Resource
与@Autowired一样,区别在于@Autowired默认按bean类型装配,
而@Resource按照实例名称装配。@Resource两个重要属性:name和type,对应实例名称和实例类型。
@Scope(“singleton”)
单例模式的spring注解配置
@Scope(“prototype”)
多例模式的spring注解配置

补充:单例模式与多例模式的优缺点与使用场景
singleton 单例模式:对象在整个应用只有一个,所有的请求都用这个对象处理,如service和dao一般是单例。
​ 单例场景:不需要为每个请求新建一个对象,节省系统开销(CPU资源和内存)
prototype 多例模式:对象在整个应用中有多个实例,每个请求用一个新的对象来处理 。
​ 多例场景:防止并发,即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象的状态改变导致了对象对另一个请求做了错误的处理。(即每个对象对应的各个请求独立分开操作)
单例:一个类只能创建一个实例(1个内存地址),多例:一个类创建多个实例

@Lazy
spring中实现懒加载的注解

补充:立即加载与懒加载的区别
立即加载:Spring容器启动就会创建实例(对象),默认。 对象的引用作为属性关联(连表查询,一对一/一对多/多对多),初始化时即创建对象或查询数据。
懒加载:Spring容器创建对象,使用到才去创建。需要用到关联对象(数据)的时候,再创建对象或查询数据

@PostConstruct //初始化执行
开启spring的生命周期
@PreDestroy //销毁的方法
关闭spring的生命周期

补充:

在使用注解之前务必要在spring配置文件里写入扫描
<context:component-scan base-package=“填入要扫描的包名”></context:component-scan>


在spring管理bean的一些小结

<bean id=“类名小写或自定义名称”
class=“包1.包2.实体类名”
scope=“singleton” (单例或者多例)
lazy-init=“false” (懒加载或立即加载)
init-method=“init” (spring的开始对应的方法)
destroy-method=“destroy”(spring的消亡对应的方法)

另外: bean如果是配置实体类 如: (配置属性值)

bean如果配置服务层级如service



(将dao层的接口实现类通过构造方法或setting注入service层的事务处理类)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A_lix

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值