Java高级部分-Spring框架的学习

2020.6.19 17:11

Spring介绍

Spring是一个一站式的框架,仅仅使用一个Spring框架就能完成项目的开发。
原因:Spring框架性质是属于容器性质的。容器中装什么对象就有什么功能,所以可以一站式开发。

三层架构中Spring的位置:
Java高级部分-Spring框架的学习_第1张图片
Spring的核心:IOC【控制反转】和 AOP【面向切面编程】

Spring中有:AOP支持、IOC思想、Spring JDBC、AOP事务、JUnit测试支持。

Spring搭建

新建一个动态Web项目。
Java高级部分-Spring框架的学习_第2张图片
Java高级部分-Spring框架的学习_第3张图片

  1. 导包。主要有Beans、Core、Context、SpEL
    Java高级部分-Spring框架的学习_第4张图片
    在lib中导入如下jar包。
    Java高级部分-Spring框架的学习_第5张图片
  2. 创建一个对象,例如:User。
    Java高级部分-Spring框架的学习_第6张图片
    新建一个User类
    Java高级部分-Spring框架的学习_第7张图片
  3. 书写xml配置,注册对象到容器中。
    Java高级部分-Spring框架的学习_第8张图片
  4. 导入外部的dtd文件。如:spring-beans-4.2.xsd。

Java高级部分-Spring框架的学习_第9张图片

  • 在Window–Preferences中,搜索catalog找到xml中的XML Catalog,然后新建AddJava高级部分-Spring框架的学习_第10张图片

  • 将spring-beans-4.2.xsd放在key后面,在key type中选择Schema location。OK即可。
    Java高级部分-Spring框架的学习_第11张图片

  • 导入约束。先在xml文件中写一个。然后切换到Design设计模式。如下图示。右键弹出。Java高级部分-Spring框架的学习_第12张图片Java高级部分-Spring框架的学习_第13张图片Java高级部分-Spring框架的学习_第14张图片
    Java高级部分-Spring框架的学习_第15张图片
    最后结果如下图所示:
    在这里插入图片描述

  1. 代码测试。 在src下新建一个专门用于测试的包,并在下面新建一个测试类TestDemo。实际操作代码如下。
    Java高级部分-Spring框架的学习_第16张图片

Spring中的IOC和AOP概念

  1. IOC思想:【反转控制】----反转了对象的创建方式,从我们自己创建反转给了程序Spring。【将对象的创建权力交给了Spring】。以前对象是由我们开发人员来自己维护,包括依赖都是自己注入。使用了Spring之后,对象的创建和依赖关系都可由Spring来完成创建和注入。
  • DI:(Dependeney Injection)依赖注入。
  • 注入方式有:
    1、Set方法注入
    2、构造方法注入
    3、字段注入
  • 注入类型有:
    1、 值类型注入
    2、 引用类型注入
  1. BeanFactoryApplicationContext
  • BeanFactory:已过时的接口,Spring最原始的接口。针对原始接口的实现类,功能单一。
    特点:每次在获得对象时,才会去创建对象。

  • ApplicationContext:每次容器启动时,就会去创建容器中配置的所有对象。提供很多的功能。
    1、从类路径下加载配置文件:ClassPathXmlApplicationContext
    2、从硬盘中绝对路径下加载配置:FileSystemXmlApplication(“D://xxx//…”);

Spring中Bean的配置详解

applicationContext.xml 里:

Bean元素:使用该元素描述需要Spring容器管理的对象。

  • name属性。【给被管理的对象起个名字,获得对象时根据该名获得对象,可重复,可用特殊字符】
  • class属性。【被管理对象的完整类名】
  • id属性。【与name一样,名称不可重复,不能使用特殊字符】
  • 结论:尽量使用name属性。
<bean id="User" name="可用/User或Use-r等" class="com.HoQis.beans.User"></bean>

三种创建对象的方式

  1. 空参构造方法。【重点掌握】
<bean name="user1" class="com.HoQis.beans.User"></bean>
  1. 静态工厂。【了解】
<bean name="user2" class="com.HoQis.beanFactory.UserFactory" factory-method="createUser"></bean>
  1. 实例工厂。【了解】Java高级部分-Spring框架的学习_第17张图片
    Spring配置中的Scope属性

    1、singleton (默认值)单例对象:被表示为单例的实例对象,在Spring容器中只会存在一个。

    <bean name="user1" class="com.HoQis.beans.User" scope="singleton"></bean>
    

    2、prototype 多例原型。被标识为多例的实例对象,在Spring容器中,每次在获得才会创建,并且每一次都是创建新对象。

    <bean name="user1" class="com.HoQis.beans.User" scope="prototype"></bean>
    

    还有这两个属性,分别为:session和request,不常用。

导入其他Spring的配置文件

<import resource="xxx.xml(文件路径)">

Spring属性注入方式:

  1. Set方法注入【特别重要】
  2. 构造方法注入【较重要】
  3. p名称注入
  4. spEL注入

需在User和Car类中添加toString()方法在这里插入图片描述

	<!-- Set方法注入 -->
	<bean name="User" class="com.HoQis.beans.User">
		<property name="name" value="Tom"></property><!-- 值注入,为User对象中的name属性注入值为Tom -->
		<property name="age" value="18"></property><!-- 值注入,为User对象中的age属性注入值为18-->
		<property name="car" ref="car"></property><!-- ref引用类型注入,为car属性注入下方配置的Car对象 -->
	</bean>
	<bean name="car" class="com.HoQis.beans.Car">
		<property name="car" value="法拉利"></property>
		<property name="color" value="黄色"></property>
	</bean>

Java高级部分-Spring框架的学习_第18张图片

总结:

Java高级部分-Spring框架的学习_第19张图片Java高级部分-Spring框架的学习_第20张图片Java高级部分-Spring框架的学习_第21张图片
2020.6.20 0:05

你可能感兴趣的:(Spring框架学习,spring,java)