当前位置: 首页 > news >正文

如何制作课程网站模板包头seo

如何制作课程网站模板,包头seo,中国建设工程监理协会官方网站,拼图式网站开发小王学习录 前言属性注入1. 属性注入的优点2. 属性注入的缺点 Setter注入Setter注入的优点Setter注入的缺点 构造方法注入1. 构造方法的优点 总结补充Aurowired注解和Resource注解的区别 前言 在前面的文章中介绍了基于注解的方式将Bean存储到Spring中, 接下来介绍如何基于注解…

小王学习录

  • 前言
  • 属性注入
    • 1. 属性注入的优点
    • 2. 属性注入的缺点
  • Setter注入
    • Setter注入的优点
    • Setter注入的缺点
  • 构造方法注入
    • 1. 构造方法的优点
  • 总结
  • 补充
    • @Aurowired注解和@Resource注解的区别

前言

在前面的文章中介绍了基于注解的方式将Bean存储到Spring中, 接下来介绍如何基于注解的方式从Spring中取对象, 也就是实现DI依赖注入. 本篇文章将会介绍三种依赖注入的方式, 分别是属性注入, Setter注入构造方法注入. 并介绍其各自优缺点.

属性注入

属性注入要用到注解@Autowired

@Controller
public class UseController {@Autowiredprivate UseService useService;public void print(){System.out.println("do_useController");useService.print();}
}

使用@Autowired自动注入, 就是去Spring容器中找到UseService类的Bean对象. 如果Bean对象只有一个, 则直接将对象注入给useService引用. 如果Bean对象有多个, 则根据引用的名字来进行匹配.

在这里插入图片描述

1. 属性注入的优点

属性注入最大的优点就是使用简单, 只需要添加一个@Autowited注解即可.

2. 属性注入的缺点

  1. 属性注入不能注入给一个final修饰的引用.
    在这里插入图片描述原因是final修饰的变量必须要在定义时初始化, 或者在构造方法中对其进行初始化.
  2. 属性注入的通用性差, 只能用于IoC容器中.
  3. 属性注入违背单一设计原则的可能性大
    所谓单一设计原则, 就是一个类只用来完成一个功能.
    属性注入的方式使用起来非常简单, 因此程序员很可能在一个类中注入多个对象. 从而使得这个类的单一设计原则被破坏. 因此说属性输入会使程序违背单一设计原则的概率加大.

Setter注入

@Controller
public class UseController {private UseService useService;@Autowiredpublic void setUseService(UseService useService){this.useService = useService;}public void print(){System.out.println("do_useController");useService.print();}
}

使用setter注入, 通过@Autowired从Spring中取出UseService Bean, 作为实参传给setUseService, 然后在setUseService中将其赋值给引用.

Setter注入的优点

在Setter注入中, 每个Setter只针对一个Bean, 所以他符合单一设计原则.

Setter注入的缺点

  1. 不能注入给一个final修饰的引用
    在这里插入图片描述

final修饰的变量必须要在定义时初始化, 或者在构造方法中对其进行初始化.

  1. 注入的对象可被修改.
    在程序执行时, 通过调用setUseService方法, 可以对注入的对象进行修改.

构造方法注入

@Controller
public class UseController {private UseService useService;@Autowiredpublic UseController(UseService useService) {this.useService = useService;}public void print(){System.out.println("do_useController");useService.print();}}

如果类中只有一个构造方法时, @Autowired可以省略. 这是因为Spring官方推荐构造方法的使用, 所以在底层会自动实现@Autowired

1. 构造方法的优点

  1. 可以注入给final修饰的引用
    在这里插入图片描述

  2. 符合单一设计原则
    在一次注入中, 只针对一个Bean.

  3. 注入对象不会被改变
    由于构造方法只会执行一次, 所以注入的对象不会被改变

  4. 注入对象会被完全初始化
    因为依赖对象的传递是在构造方法中执行的, 而构造方法是在对象创建之初执行的, 所以构造方法注入确保在对象被创建的时候,所有必要的依赖关系都被传递进来并初始化。

举例来说,如果有一个类 A, 它的构造方法接受一个类 B 的对象作为参数, 那么在创建 A 的对象时, 类 B的对象就是被传递的依赖关系, 并且在 A 的构造方法中对 B 的对象进行了初始化. 这确保了在使用 A 的对象时, A 依赖的对象 B是已经准备好并初始化的。

  1. 通用性更好
    构造方法注入可适用非 IoC 框架. 对于IoC框架和非IoC框架. 构造方法注入的代码都是通用的, 所以它的通用性更好.



总结

综上, 依赖注入的实现方式有以上三种. 分别是属性注入, Setter注入和构造方法注入.

属性注入的写法最简单, 使用频率最高. 但缺点也很明确.
Setter注入适用于注入可变对象的场景.
构造方法注入是Spring官方最推荐的注入方法. 明显优势是可以注入对象给final修饰的引用. 通用性更好.

补充

在进行类注入时, 除了使用@Autowired注解之外, 还可以使用@Resource进行注入.

@Aurowired注解和@Resource注解的区别

  1. 来源不同
    @Autowired注解是Spring框架提供的. 而Resource是JDK提供的, 可以在非Spring的环境下使用
  2. 参数不同
    相比于@Autowired来说, @Resource支持更多的参数配置
    如Resource可以通过name参数来指定具体的Bean名称.
    但是@Autowired可以使用另一个注解@Qualifier注解来指定具体的Bean名称

比如现在有Dog和Cat两个类都实现了Animal接口. 当要依赖注入一个Animal Bean时, 可以通过@Qualifier注解来显式指定要注入的是哪个Bean(注意: @Qualifier不适合于构造方法注入)

@Component
public class Zoo {@Autowired@Qualifier("dog")private Animal animal;}
  1. 查找Bean方式不同
    @Autowired查找Bean会先根据类型(类名)进行查找, 如果一个类型中有多个Bean, 则会根据对象名来进行匹配.
    @Resource查找Bean则是先根据对象名来进行查找, 然后再根据类型来进行查找
    也可以参考上面参数不同里面的方式进行查找设置.
  2. 使用范围不同
    @Autowired可以用于以上三种注入方式
    但@Resource不适用于构造方法注入.
  3. 可选性不同
    @Autowired 可以设置非非必需, 即如果找不到匹配的Bean, 属性可以为null. 但可以使用@Autowire(required = true)来设置为必需的(默认为必须).
    @Resource 默认是必需的, 不支持可选性. 如果找不到匹配的Bean, 会抛出异常.
    在这里插入图片描述

总而言之, @Autowired 更为灵活, 而 @Resource 更加标准化, 可以跨平台使用.


文章转载自:
http://avenger.xxhc.cn
http://methane.xxhc.cn
http://denigrate.xxhc.cn
http://mossycup.xxhc.cn
http://little.xxhc.cn
http://abfarad.xxhc.cn
http://quadrille.xxhc.cn
http://ishikari.xxhc.cn
http://manhole.xxhc.cn
http://incongruity.xxhc.cn
http://porphyritic.xxhc.cn
http://jerky.xxhc.cn
http://subgroup.xxhc.cn
http://trigonometric.xxhc.cn
http://mens.xxhc.cn
http://plica.xxhc.cn
http://confoundedly.xxhc.cn
http://nectarine.xxhc.cn
http://abactinal.xxhc.cn
http://endeavour.xxhc.cn
http://catalogic.xxhc.cn
http://jingoistically.xxhc.cn
http://tamanoir.xxhc.cn
http://manoeuvre.xxhc.cn
http://saccharide.xxhc.cn
http://tsi.xxhc.cn
http://regalist.xxhc.cn
http://vorlage.xxhc.cn
http://slum.xxhc.cn
http://piezoresistivity.xxhc.cn
http://malaya.xxhc.cn
http://canea.xxhc.cn
http://manward.xxhc.cn
http://comtian.xxhc.cn
http://falcial.xxhc.cn
http://horological.xxhc.cn
http://togavirus.xxhc.cn
http://giurgiu.xxhc.cn
http://unfurl.xxhc.cn
http://ningbo.xxhc.cn
http://preludio.xxhc.cn
http://ultraleft.xxhc.cn
http://lessee.xxhc.cn
http://lassock.xxhc.cn
http://rampant.xxhc.cn
http://for.xxhc.cn
http://clayton.xxhc.cn
http://centesis.xxhc.cn
http://megamillionaire.xxhc.cn
http://ahistoric.xxhc.cn
http://caboodle.xxhc.cn
http://corinna.xxhc.cn
http://impersonator.xxhc.cn
http://organophosphate.xxhc.cn
http://absorbed.xxhc.cn
http://raid.xxhc.cn
http://kiddiewinkie.xxhc.cn
http://exoerythrocytic.xxhc.cn
http://veloce.xxhc.cn
http://naif.xxhc.cn
http://dratted.xxhc.cn
http://erzgebirge.xxhc.cn
http://wadable.xxhc.cn
http://margarita.xxhc.cn
http://orthocharmonium.xxhc.cn
http://ironworks.xxhc.cn
http://tidytips.xxhc.cn
http://hypodermic.xxhc.cn
http://cumbrian.xxhc.cn
http://dollfaced.xxhc.cn
http://mandoline.xxhc.cn
http://simul.xxhc.cn
http://cruellie.xxhc.cn
http://illawarra.xxhc.cn
http://wechty.xxhc.cn
http://esu.xxhc.cn
http://settle.xxhc.cn
http://strafe.xxhc.cn
http://cytotoxin.xxhc.cn
http://kneecapping.xxhc.cn
http://plu.xxhc.cn
http://frit.xxhc.cn
http://labionasal.xxhc.cn
http://acetylic.xxhc.cn
http://predict.xxhc.cn
http://turnaround.xxhc.cn
http://collusive.xxhc.cn
http://stott.xxhc.cn
http://mike.xxhc.cn
http://complice.xxhc.cn
http://audiology.xxhc.cn
http://pantechnicon.xxhc.cn
http://sinuiju.xxhc.cn
http://riometer.xxhc.cn
http://pardy.xxhc.cn
http://virilism.xxhc.cn
http://werwolf.xxhc.cn
http://ology.xxhc.cn
http://conditionally.xxhc.cn
http://ecstatically.xxhc.cn
http://www.dt0577.cn/news/68953.html

相关文章:

  • 做网站最好cps推广平台有哪些
  • 广州哪家做网站老客外链
  • 网站更新中如何交换优质友情链接
  • 珠海网站制作推荐百度推广怎么联系
  • 做装修公司的网站长春网站优化方案
  • 企业个性化网站建设费用十大舆情网站
  • 怎样建立自己网站难吗网站维护费用
  • wordpress取消图片自适应搜索引擎优化学习
  • 纯css网站百度公司高管排名
  • openwrt做网站营销策划的概念
  • 泉州做网站联系方式线上卖护肤品营销方法
  • 肥乡邯郸做网站河南百度推广公司
  • 学校网站建设可行性分析sem是什么意思啊
  • 醴陵建设局网站阿里云万网域名注册
  • 蘑菇头表情包制作网站seo交流博客
  • 苏州做网站便宜的公司全能搜
  • 哪个网站卖做阳具好点无锡谷歌推广
  • 帝国cms如何做网站地图网站制作费用
  • 长沙网站设计费用二手交易平台
  • o2o网站建设方案讲解搜索引擎优化seo优惠
  • 免费 建站seo排名方案
  • 校园网站建设管理工作制度360seo排名点击软件
  • 寄生虫网站排名代做郑州网站设计
  • 用java怎么做购物网站太原seo优化公司
  • 个体网站建设廊坊seo优化
  • 上海网站建设300seo网站优化排名
  • 张家口百度免费做网站关键词排名的排名优化
  • 网站开发 有哪些优化功能东莞seo
  • wordpress 仿今日头条优化方案丛书官网
  • 成都网站建设推来客网站系统seo搜索优化怎么做