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

聊城做网站哪家好西安建站

聊城做网站哪家好,西安建站,平台网站模板素材图片下载,如何做网络营销推广赚钱文章目录 前言概述一、属性注入1.1 实例1.2 优点1.3 缺点 二、Setter注入2.1 实例2.2 优点2.3 缺点 三、 构造方法注入3.1 实例3.2 优点3.3 缺点 四、扩展 前言 IoC和DI是Spring中重要的两个概念,其中IoC指的是控制反转,DI(依赖注入)指的是IoC的具体实现…

文章目录

  • 前言
  • 概述
  • 一、属性注入
    • 1.1 实例
    • 1.2 优点
    • 1.3 缺点
  • 二、Setter注入
    • 2.1 实例
    • 2.2 优点
    • 2.3 缺点
  • 三、 构造方法注入
    • 3.1 实例
    • 3.2 优点
    • 3.3 缺点
  • 四、扩展


前言

IoC和DI是Spring中重要的两个概念,其中IoC指的是控制反转,DI(依赖注入)指的是IoC的具体实现方式。那么DI实现依赖注入有哪些方式呢?这些方式又各自有什么优缺点呢?接下来,让我们一起来看一看。


概述

在Spring中实现依赖注入的常见方式有以下三种:

  1. 属性注入
  2. Setter注入
  3. 构造方法注入

它们的具体使用方式以及优缺点如下。

一、属性注入

属性注入是Spring三种常见注入方法最简单的方式,也算是开发过程中,开发者最喜爱的方式。

1.1 实例

属性注入只需要使用@Autowired修饰,就可以直接获得注入的对象,代码如下:

@Controller
public class UserController {@Autowired  private UserService userService;}

1.2 优点

属性注入的优点就是实现简单,使用简单。

1.3 缺点

  1. 不能注入不可变对象,也就是不能注入final修饰的对象
  2. 兼容性不好,只适合IoC容器
  3. 由于写法简单,也更容易违背单一设计原则

二、Setter注入

2.1 实例

Setter注入需要引入这个对象的set方法,并且用@Autowired修饰。这是Spring前期版本推荐使用的方式,但是由于通用性不好,现在Spring推荐使用的方式是构造方法注入,待会我们会讲到。

@Controller
public class UserController {private UserService userService;@Autowiredpublic void setUserService(UserService userService) {this.userService = userService;}
}

2.2 优点

相比于属性注入,Setter注入更符合单一设计原则,因为每次都只传递了一个对象。

2.3 缺点

  1. 和属性注入一下,Setter注入不能注入不可变对象
  2. 注入的对象可能被修改(因为可能有其他人调用这个set方法)

三、 构造方法注入

3.1 实例

构造方法注入,顾名思义,需要引入对象的构造方法。除此之外,@Autowired在这里可以省略

@Controller
public class UserController {private UserService userService;// @Autowired public UserController(UserService userService) {this.userService = userService;}
}

3.2 优点

  1. 与前两者方式不同,构造方法注入可以注入不可变的对象。这是因为在JavaSE中,创建final修饰的对象时,要么直接赋值,要么在构造方法中赋值,必须满足其一。
  2. 由于构造方法只执行了一次,注入的对象不会被改变。
  3. 可以保证注入对象完全被初始化。
  4. 兼容性更好

3.3 缺点

如果有多个注入会显得比较臃肿,但是出现这种情况我们应该考虑一下当前类是否符合程序的单一设计原则。

四、扩展

除了上诉@Autowired修饰的三种依赖注入以外,还有另外一种注入关键字@Resource

那么@Resource和@Autowired有什么区别呢?

首先,@Autowired来自Spring,@Resource来自jdk;其次,两者使用时设置的参数不同,相比于@Autowired来说,@Resource支持更多的参数设置,例如name设置,根据名称获取Bean;最后,@Autowired可用与上诉三种注入方式,但是@Resource只能用于属性注入和Setter注入,不能用于构造方法注入

http://www.yayakq.cn/news/656601/

相关文章:

  • 合肥网页模板建站网站建设与管理专业题目
  • 股权分配系统建设网站网站关键词收录查询
  • 制作网站怎么做唐山建设公司网站
  • gta5网站建设中高安网站建设
  • 51做图片的网站发布软文广告
  • 长春市制作网站费用怎样弄一个网站
  • 一个新网站要怎么做seo做网站的去哪找客户
  • 哪家建网站网易企业邮箱登录入口邮箱
  • 色系网站.海西州电子商务网站建设公司
  • 从色彩度讨论如何建设一个网站.广东省住房和城乡建设厅官网网址
  • 网站开发人员的要求射击官网
  • 建设公司网站需要什么资料软件开发流程模板
  • 长春专业企业网站建设工作室做头条信息流要网站吗
  • 如何建设网站子页买卖平台
  • 装修网站设计案例做热处理工艺的网站有哪些
  • WordPress整站搬家插件非主流炫彩发光字制作
  • 建设招标网网站电子商务平台经营者向平台内经营者收取费用
  • 网站seo优化技巧网站备案 邮寄资料
  • 外边做一个网站要多少钱域名抢注网站建设
  • 吉林省住房城乡建设厅网站wordpress地址更换
  • 天津建设工程合同备案网站wordpress迁移discuz
  • 烟台网站制作工具就要使用网页制作工具
  • 电子商务网站建设调查分析电子购物网站开发
  • 网站后台无法上传本地图片html5电影网站建设
  • 购买wordpress现有模板江苏搜索引擎优化公司
  • 商城网站建设论坛浙江住房和城乡建设厅报名网站
  • 网站运营需要哪些资质wordpress js图片
  • 金湖网站推广dedecms 股票网站模板
  • 广州网站建设易得专做女装的网站
  • 网站开发攻略大一python基础编程题