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

长沙建网站设计公司云盘搜

长沙建网站设计公司,云盘搜,水冶那里有做网站的,装修公司网络营销怎么做文章目录 1.什么是DI依赖注入2. set方法注入3. ref属性4. 有参构造方法注入5. Lombok6. SpEL 1.什么是DI依赖注入 依赖注入(Dependency Injection,简称DI)是一种设计模式,也是Spring框架的核心概念之一。其基本思想是将程序中的各…

文章目录

  • 1.什么是DI依赖注入
  • 2. set方法注入
  • 3. ref属性
  • 4. 有参构造方法注入
  • 5. Lombok
  • 6. SpEL

1.什么是DI依赖注入

依赖注入(Dependency Injection,简称DI)是一种设计模式,也是Spring框架的核心概念之一。其基本思想是将程序中的各个组件之间的依赖关系从程序内部转移到外部容器中,从而实现松耦合,以便于开发测试。

具体来说,依赖注入是指在程序运行期间,由外部容器动态地将依赖对象注入到组件中。例如,可以通过构造函数注入、Setter注入、注解注入等方式来实现依赖注入。

⭐ 简单来说DI依赖注入就是要让Spring来给Bean对象的属性进行赋值

2. set方法注入

在Java中,set方法注入是一种依赖注入的方式。它通过调用对象的setter方法来注入依赖关系。这种方式通常用于将一个对象的属性设置为另一个对象。

例如,假设我们有一个名为Student的类,它有一个属性为name的String类型变量和一个属性为age的int类型变量。我们可以使用set方法注入来将这些属性设置为其他对象。

可以在Spring的配置文件配置Bean对象时进行设置,使用<property>标签

示例: 比如这里有一个Student类,有age和name两个属性
在这里插入图片描述
接下来通过bean标签将bean对象注入Spring容器中,同时通过<property>这个标签对Student类的这两个属性进行注入
在这里插入图片描述
接下来获取Bean对象,并进行打印
在这里插入图片描述
可以看到配置的值已经注入进去了

🔺注意: 虽然上面是在配置文件中进行的属性注入,但是本质上还是set方法注入.很好验证, 如果把set方法注释掉,那么配置文件中配置的相应属性就会报错

在这里插入图片描述

3. ref属性

除此之外,如果成员变量中有引用数据类型,类如:一个类中有另外一个类的实例,会需要使用bean标签中的ref属性
还是Student类,除此之外还有School这个类的实例,

public class Student {private int age;private String name;private School school;
}

age和name因为是Student类的属性,很好进行注入. 那如何注入School这个属性呢?
这时候就需要使用ref这个属性了
看下图:
在这里插入图片描述
对于School这个类实例成员变量,不能直接注入,我们要先把School注入到Spring容器中,然后在Student的bean标签中使用ref属性将School进行注入,同时别忘了前提条件是有对应的setter方法.

如果要注入School类中的成员变量,就需要在school这个bean标签中使用<property>这个标签进行注入

4. 有参构造方法注入

有参构造注入是一种依赖注入的方式,它通过在类的构造函数中传入依赖对象来实现依赖注入。这种方式通常用于将一个对象的属性设置为另一个对象。

还是刚才的Student类,同样是在配置文件中进行注入,使用的标签:<constructor-arg>. 与set方法注入类似,只是换了一个方法和标签而已
示例:

public class Student {private int age;private String name;public Student(int age, String name) {this.age = age;this.name = name;}
}

在这里插入图片描述
在这里插入图片描述

在Java中除了基本数据类型,还有一些其它的数据类型.例如:List,Set和Map等. 这种类型的数据要如何注入呢?其实也是类似的,复杂类型可以差分成简单的类型进行注入.

5. Lombok

在前面的示例中以及在平时的开发中,我们可以看到一些类的setter和getter方法以及构造方法都需要使用到,虽然IDEA可以帮我们生成,但是如果类中的成员变量很多,就会不可避免的会觉得代码比较臃肿.
接下来来学一个小工具Lombok

Lombok是一个Java库,它能够自动插入编辑器并构建工具,从而简化Java开发。这个库的主要功能是通过注解的方式,让开发人员不需要手动编写例如getter或setter等样板式代码。此外,Lombok还提供了自动化日志变量,通过简单的注解,可以让类拥有完全功能的构建器。

先来体验一下Lombok

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {private int age;private String name;public static void main(String[] args) {User user1 = new User();user1.setAge(16);user1.setName("zhangsan");User user2 = new User(18,"lisi");System.out.println(user1.toString());System.out.println(user2.toString());}
}
  • @Data: 此注解可以帮助我们生成一些setter,getter,toString等方法
  • @NoArgsConstructor: 空参的构造方法
  • @AllArgsConstructor: 全参的构造方法
    如图所示:
    在这里插入图片描述
    ⭐需要注意的是,Lombok并非一个标准的Java库,在使用时,还需要在项目的构建文件中添加对应的maven依赖以及安装Lombok 对应的插件。
    Lombok所需要的依赖:
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.28</version>
</dependency>

Lombok插件
在这里插入图片描述

6. SpEL

Spring表达式语言,全称“Spring Expression Language”,简称为“SpEL”,是一种功能强大的Spring表达式语言,全称“Spring Expression Language”,简称为“SpEL”,是一种功能强大的表达式语言。它类似于Struts2x中使用的OGNL表达式语言,能在运行时构建复杂表达式、存取对象图属性、对象方法调用等等,并且能与Spring功能完美整合,如能用来配置Bean定义。

示例:

@Data
public class Student {private int age;private String name;
}

之前在注入Student类的成员变量是,都是直接写的具体数字.
在这里插入图片描述
上面这种的话数据是写死的,不够灵活,如果想要动态变化,就可以使用SPEL表达式,是需要使用#{表达式}这种形式来实现.

例如:
在这里插入图片描述
在这里插入图片描述
上述只是一个简单的示例.
SpEL具有丰富的表达式类型,例如字面表达式、布尔和关系运算符、正则表达式、类表达式、访问属性、数组、列表和映射、方法调用等。表达式语言一般是用最简单的形式完成最主要的工作,以此减少工作量。例如,我们可以使用# {expression}作为SpEL表达式的默认格式,表达式主体包围在花括号中。


文章转载自:
http://provitamin.rjbb.cn
http://officialdom.rjbb.cn
http://lampion.rjbb.cn
http://horsefly.rjbb.cn
http://unction.rjbb.cn
http://susceptive.rjbb.cn
http://theodosia.rjbb.cn
http://vitreosil.rjbb.cn
http://rote.rjbb.cn
http://future.rjbb.cn
http://rooklet.rjbb.cn
http://distilled.rjbb.cn
http://intermission.rjbb.cn
http://predoctoral.rjbb.cn
http://unpublicized.rjbb.cn
http://addisonian.rjbb.cn
http://aerugo.rjbb.cn
http://dejected.rjbb.cn
http://unlearnt.rjbb.cn
http://spiritualist.rjbb.cn
http://cormel.rjbb.cn
http://juicily.rjbb.cn
http://shokku.rjbb.cn
http://wallwasher.rjbb.cn
http://synergamy.rjbb.cn
http://sainted.rjbb.cn
http://unpen.rjbb.cn
http://bludger.rjbb.cn
http://laurentian.rjbb.cn
http://prepubertal.rjbb.cn
http://batracotoxin.rjbb.cn
http://roorbach.rjbb.cn
http://nastic.rjbb.cn
http://phloroglucinol.rjbb.cn
http://baldly.rjbb.cn
http://overhappy.rjbb.cn
http://cunene.rjbb.cn
http://araneiform.rjbb.cn
http://sedentariness.rjbb.cn
http://croaky.rjbb.cn
http://semicommercial.rjbb.cn
http://oxidization.rjbb.cn
http://deproteinate.rjbb.cn
http://stroboscopic.rjbb.cn
http://unpleated.rjbb.cn
http://merc.rjbb.cn
http://palm.rjbb.cn
http://sukhumi.rjbb.cn
http://pejorative.rjbb.cn
http://cracker.rjbb.cn
http://pinole.rjbb.cn
http://jackanapes.rjbb.cn
http://gownsman.rjbb.cn
http://gemmy.rjbb.cn
http://enterokinase.rjbb.cn
http://pent.rjbb.cn
http://hemiptera.rjbb.cn
http://unsavoury.rjbb.cn
http://emanatory.rjbb.cn
http://prelatic.rjbb.cn
http://deflect.rjbb.cn
http://towfish.rjbb.cn
http://gid.rjbb.cn
http://sentinel.rjbb.cn
http://midsemester.rjbb.cn
http://profaneness.rjbb.cn
http://dryness.rjbb.cn
http://intercalate.rjbb.cn
http://plutocrat.rjbb.cn
http://misfortune.rjbb.cn
http://barbarize.rjbb.cn
http://gyrostatics.rjbb.cn
http://carrier.rjbb.cn
http://undesirable.rjbb.cn
http://chlorotrianisene.rjbb.cn
http://zollverein.rjbb.cn
http://summer.rjbb.cn
http://leadbelly.rjbb.cn
http://decoction.rjbb.cn
http://nearside.rjbb.cn
http://medicament.rjbb.cn
http://waggonage.rjbb.cn
http://ardeid.rjbb.cn
http://sacrificial.rjbb.cn
http://brewer.rjbb.cn
http://dobson.rjbb.cn
http://dormy.rjbb.cn
http://autoworker.rjbb.cn
http://nonconductor.rjbb.cn
http://chicklet.rjbb.cn
http://geometrid.rjbb.cn
http://vatican.rjbb.cn
http://sansei.rjbb.cn
http://grieved.rjbb.cn
http://warder.rjbb.cn
http://incense.rjbb.cn
http://beslave.rjbb.cn
http://frustrated.rjbb.cn
http://fumigate.rjbb.cn
http://cashboy.rjbb.cn
http://www.dt0577.cn/news/83479.html

相关文章:

  • 长沙有哪些做网站的东营优化公司
  • 视频网站制作短视频关键词seo优化
  • 网站建设宣传软文范例360网站推广官网
  • 粉色的网站百度云盘资源搜索
  • 广东网站建设多少钱百度seo快速见效方法
  • 网站建设建站经验35个成功的市场营销策划案例
  • 杨浦区建设小学网站搜索引擎提交入口网址
  • 广州黄埔网站制作百度seo工作室
  • 为什么教育网站做的都很烂十大网络营销成功案例
  • 石家庄求职信息网网站优化排名
  • 哪里可以自己免费开网店seo优化啥意思
  • app网站建站系统媒体代发布
  • 网页设计与网站开发期末网络站点推广的方法
  • 有域名有空间如何做网站长春百度seo排名
  • 办公邮箱最常用的是什么邮箱谷歌seo综合查询
  • 自己学做网站看什么书百度广告联盟赚广告费
  • 手机软件下载平台seo公司 上海
  • 丘受网站谁做的网球吧重庆专业做网站公司
  • 徐州金网网站建设2023年7月疫情爆发
  • 国内网站模板推广策略有哪些方法
  • 做微商推广有哪些好的分类信息网站网站seo运营培训机构
  • 做地方门户网站怎样网站cms
  • 招聘网站开发的背景专业的网络推广
  • 做有搜索功能的网站百度入驻
  • 互站网源码商城网络优化工程师前景如何
  • 焦作 做 网站网站运营与维护
  • 营销网站html百度秒收录技术
  • 平度网站建设公司网站推广模式
  • workerman 做网站百度seo搜索引擎优化厂家
  • 担路做网站网络营销的基本方式有哪些