快速认识Spring ------zjp

Spring 的简介

Jar包和源码的下载地址

https://github.com/spring-projects/spring-framework/tags
https://repo.spring.io/libs-release-local/org/springframework/spring/

Spring 学习的核心内容
[1] IOC:控制反转–帮助我们创建对象的
[2] AOP:面向切面—提升代码的扩展性
[3] TX:声明式事务管理

Spring 中IOC的实现

A、责任链
我们在使用MVC进行开发的时候数据在各层之间进行传递,数据传递的时候在业务上形成一个链条,这个链条称之为责任链
B、基于责任链模式开发的缺点:
层和层之间的相互调用造成了耦合性比较高
C、解决的方案
Spring IOC :控制反转
英文全称:Inversion of Control
作用 :帮助我们创建对象的
理解示意图
在这里插入图片描述
D、代码的实现
[1] 导包
在这里插入图片描述
[2] 书写applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--User  user =new User();-->
      <bean id="us" class="com.bjsxt.spring01.User"></bean>
</beans>

[3] 测试类代码

//[1]解析applicationContext.xml

 ApplicationContext  app =new ClassPathXmlApplicationContext("applicationContext.xml") ;

 //[2]获得user对象
 User us = (User) app.getBean("us");

 us.eat();

IOC实现的好处

实现代码之间的解耦

IOC :控制反转

控制:创建对象的过程
反转:创建对象的操作本身是程序员自己完成的,现在反交给Spring 进行创建。
IOC 创建对象的方式
A、使用无参构造

<!--[1]使用无参构造创建对象-->
<bean id="stu" class="com.test.spring02.Student"></bean>

B、使用有参构造

<!--[2]使用有参构造
     A、name属性和对应类中的有参构造的形参名称一致
     B、书写constructor-arg 标签的顺序和有参构造的形参的顺序无关
     C、我们可以使用 name 、index  和 type   共同约束我们调用的方法
-->
<bean id="stu2" class="com.test.spring02.Student">
    <!--<constructor-arg name="age" value="18"></constructor-arg>

    <constructor-arg name="sex" value="男"></constructor-arg>
    <constructor-arg name="name" value="zs"></constructor-arg>-->
   <constructor-arg name="a" index="0" type="int" value="12"></constructor-arg>
    <constructor-arg name="b" index="1" type="java.lang.String" value="sxt"></constructor-arg>
</bean>

C、使用工厂模式创建对象

设计模式:解决某一类问题的产生
工厂设计模式:可以达到对象的统一管理,可以批量的产生某一类对象。

<!--[3]工厂模式-->

<!-- Factory  factory=new  Factory()-->
<bean id="factory" class="com.test.spring03.Factory"></bean>

<!-- People  po= factory.getInstance('tea')-->
<bean id="po" factory-bean="factory" factory-method="getInstance">
    <constructor-arg name="param" value="stu"></constructor-arg>
</bean>

 <!--People tea = Factory.getInstance2("tea");-->
<bean id="po2" class="com.test.spring03.Factory" factory-method="getInstance2">
    <constructor-arg name="param" value="stu"></constructor-arg>
</bean>
基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip 个人大四的毕业设计、课程设计、作业、经导师指导并认可通过的高分设计项目,评审平均分达96.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 [资源说明] 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设或者课设、作业,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96.5分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),供学习参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值