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

Spring系统学习——持续更新

spring概述

1.轻量级的开源的JAVAEE框架
2.解决企业应用开发的复杂性
3.两大核心 :IOC(控制反转)和AOP(面向切面)
4.Spring特点:

  • 1.方便解耦,简化开发。
  • 2.Aop编程支持
  • 3.方便程序测试
  • 4.方便和其他框架进行整合
  • 5.方便进行事物操作
  • 6.降低API开发难度

IOC概念和原理:

什么是Ioc:

  1. 控制反转,把对象的创建和对象之间的调用过程,都交给Spring进行管理
  2. 使用IOC的目的:为了降低耦合度

IOC底层原理:

xml解析、工厂模式、反射

假设有UserService与UserDao两个对象,UserService对象要调用UserDao对象的add()方法,1>.最原始写法为直接调用:(耦合度过高)
一个对象调用另一个对象方法

2>.通过工厂模式:降低UserService对象与UserDao对象之间的耦合度;只能说降低耦合度到最低限度,耦合对不能完全消失
工厂模式
IOC过程
1.xml配置文件,配置创建的对象

<bean id="dao" class = "com.base.UserDao"></bean>

2.创建工厂类,在工厂类中解析xml配置文件,通过反射获取对象的字节码文件,通过newInstance()方法获取创建的对象
在这里插入图片描述
IOC思想基于Ioc容器完成,IOC容器底层就是对象工厂

二:Spring提供IOC容器实现的两种方式:(两个接口)

(1)BeanFactory:

spring内置的方式,IOC容器基本实现方式;
特点:加载配置文件的时候不会创建对象,在获取或者使用的时候才会创建对象;

(2)ApplicationContext:

BeanFactory接口的子接口,提供了更多更强的功能,一般面向开发人员使用
特点:加载配置文件的时候就会把配置文件中的对象进行创建
ApplicationContext接口的实现类:
在这里插入图片描述

bean管理的两大内容:

(1)spring创建对象
(2)spring注入属性

1.实现Bean管理操作的两种方式

xml方式创建对象
<bean id="user" class="com.springText.spring5.User"></bean>
  <!--使用property完成属性注入
     name:类里面属性名称
     value:向属性注入的值
   -->
set方法注入属性值
public class Book{
	private String bname;
	public void setBname(String bname){
		this.bname = bname;
	}
	public static void main(String[] args){
		Book book = new Book();
		book.setName("小韩");
	}
}
在spring配置文件xml中配置对象创建,配置属性注入
//配置对象创建
<bean id="book" class="com.springText.spring5.Book">
//配置属性注入
<property name="bname" value="易筋经"></property>
<property name="bauthor" value="夷陵老祖"></property>
</bean>
有参构造注入属性值

1.创建类,定义属性,创建属性对应有参构造。

public class Orders{
	//属性
	private String oname;
	private String address;
	//有参构造函数
	public Orders(String oname,String address){
		this.oname = oname;
		this.address = address;
	}
	public void orderTest(){
		System.out.println(oname+"::"+address);
	}
}

2.在Spring的配置文件中进行配置:constructor-arg

<!--有参构造注入属性-->
<bean id=" orders" class="com. springText. spring5. Orders">
<constructor-arg name ="oname" value="电脑"></constructor-arg>
<constructor-arg name = "address" value ="China"></constructor arg>
</bean>
p名称空间注入:

1.使用p名称空间注入,可以简化基于xml配置方式
第一步:在xml配置文件中添加p名称空间
在这里插入图片描述
(2)进行属性注入,在bean标签里进行操作p:bname

<bean id="Order" class="com.springTest.spring5.Order" p:oname ="小兔" p:address="China"></bean>

xml注入其他类型属性:注入空值和特殊符号

(1)设置null值:
<--null-->
<property name="address">
<null/>
</property>

(2)包含一些特殊符号

<!--属性值包含特殊符号
	1.<>进行转义 &lt; &gt;
	2. 或者:把带特殊符号内容写到CDATA
>
<property name = "address">
<value>![CDATA<<南京>>]]</value>
</property>
</bean>

相关文章:

  • MySQL的备份与还原
  • 项目BUG
  • 股指期货有什么常见的交易方式?
  • ChatGPT macOS 桌面应用让你的编程体验更上一层楼
  • AI问答-供应链管理-M2:战略分析模型汇总
  • spring boot单元测试
  • LeetCode刷题第7题【整数反转】---解题思路及源码注释
  • 网络基础 【UDP、TCP】
  • 什么是耐环境环形光源
  • 企业文件共享中的权限管理与安全风险防范
  • 蓝桥杯篇---实时时钟 DS1302
  • 传输层协议TCP (上)
  • 迅为RK3568开发板篇Openharmony配置HDF控制UART-什么是串口
  • zabbix 监控系统 配置钉钉告警
  • 浅聊MQ之Kafka与RabbitMQ简用
  • 基础篇07-空域滤波(中)--非线性平滑滤波
  • [ComfyUI]腾讯开源黑科技Sonic,插件更新,更加可控啦
  • vite让每个scss文件自动导入某段内容
  • Unity使用iTextSharp导出PDF-05页面事件
  • 工业物联网远程监控系统优化方案,基于巨控GRM553Y-CHE
  • 冠县网站建设价格/百度资源平台链接提交
  • 做的比较好的网页设计网站/个人如何在百度做广告
  • 微博网站开发/长沙全网覆盖的网络推广
  • 网站 一级域名 二级域名/百度问答app下载
  • 做网站有意思吗?/关于搜索引擎的搜索技巧
  • 专注网站建设与优化/青岛做网络推广的公司有哪些