spring框架学习--spring5

spring框架的基本概述

1、Spring 是一个轻量级的开源的JavaEE框架。

2、Spring可以解决企业应用开发的复杂性。

3、Spring有两个核心部分:IOC 和 AOP
(1)IOC:控制反转,把创建对象过程交割Spring进行管理。
(2)AOP:面向切面,不修改源代码进行功能增强。

4、Spring特点
(1)方便解耦,简化开发
(2)AOP编程的支持
(3)方便测试
(4)方便集成各种优秀框架
(5)降低进行事务的操作
(6)降低Api的使用难度

入门案例

1、下载Spring5
在这里插入图片描述
注:GA是稳定版本
SNAPSHOT是快照版本
https://repo.spring.io/ui/native/release/org/springframework/spring 此路径列出了spring的所有版本

在这里插入图片描述
2、打开idea工具,创建java工程

3、将下载的核心依赖复制到项目中,创建一个lib文件夹,放入。
再将包导入到项目中
在这里插入图片描述
4.创建一个类,创建一个方法

5、创建一个spring配置文件,在配置文件配置创建的对象
(1)spring配置文件时xml文件格式的
在这里插入图片描述
6、编写测试代码
在这里插入图片描述

Ioc容器

(1)IOC底层原理
(2)IOC接口(BeanFactory)
(3)IOC操作bean管理(基于xml)
(4)IOC操作bean管理(基于注解)

IOC(概念和原理)
1、什么是IOC
(1)控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理。
(2)使用IOC目的,为了耦合度降低

2、IOC底层原理
(1)xml的解析,工厂的设计模式,反射
在这里插入图片描述
IOC接口(BeanFactory)

1、IOC思想基于IOC容器完成,,,,,IOC容器底层就是对象工厂。
2、Spring提供IOC容器实现两种方式:(两个接口)
(1)BeanFactory:IOC容器基本实现,是Spring内部使用。
加载配置文件的时候不会去创建里面的对象,只有使用的时候才会创建里面的对象。

(2)ApplicationContext :BeanFactory接口的子接口,提供了更多更强大的功能,一般由开发人员使用。
加载配置文件时候就会把在配置文件中的对象进行创建。

3、ApplicationContext 的实现类
在这里插入图片描述
ClassPathXmlxxx是类路径下的文件路径
FileSystemXmlxxx是磁盘路径下的文件路径


IOC操作bean管理
1、Bean管理
(1)Spring创建对象
(2)spring注入属性


Bean管理操作有两种方式
一、基于xml配置文件方式实现

基于xml方式创建对象
//1、在spring配置文件中,使用bean标签,标签里面添加对应属性,就可以实现对象创建
//2、bean标签中有很多属性
	id属性:给这个对象起一个标识,并不是对象的名字
	class属性:类全路径(包路径+类的名字)
	name属性:和id的作用一样的,不同的是name属性值中可以加特殊符号,id属性中不可以加特殊符号。
//3、创建对象时候,默认也是执行无参构造方法,完成对象的创建。
<bean id="user" class="com.ck.spring5.User"></bean>
基于xml方式注入属性

DI:依赖注入,就是注入属性(DI就是IOC的具体实现)

第一种注入方式:set方法注入
	<!--  set方法注入属性,确定类中有set方法  -->
    <bean id="book" class="com.ck.spring5.Book">
		<!--    name:类中的属性名  value:属性的值    -->
        <property name="bname" value="abc"/>
    </bean>
第二种注入方式:使用有参数的构造进行注入
	<!-- 构造方法的注入  要有有参构造方法-->
    <bean id="orders" class="com.ck.spring5.Orders">
		<!--    name:参数名称    value:参数值    -->
        <constructor-arg name="oname" value="abc"></constructor-arg>
    </bean>
p名称空间注入

(1)使用p名称空间注入,可以简化基于xml配置方式
第一步:首先添加xmlns:p约束

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

第二步进行属性注入(底层还是set注入,需要有set方法)

 <bean id="book" class="com.ck.spring5.Book" p:bname="abc"></bean>

IOC操作bean管理(xml注入其他类型属性)
1、字面量(设置属性的固定值)
(1)null值

<!--  set方法注入属性  -->
    <bean id="book" class="com.ck.spring5.Book">
<!--    name:类中的属性名  value:属性的值    -->
        <property name="bname" value="abc"/>
        <property name="bauthor" >
        <!-- null值  -->
            <null></null>
        </property>
    </bean>

(2)属性值包含特殊符号

		<!-- 属性值中有特殊符号 
		1、将<<>>进行转义 
		2把带特殊符号的内容写到CDATA中   -->
        <property name="bauthor" >
            <value><![CDATA[<<南京>>]]></value>
        </property>

2、注入属性-外部bean
(1)创建两个类service类和dao类
(2)在service调用dao里面的方法
(2)在spring配置文件进行配置

 <bean id="userService" class="com.ck.spring5.service.UserService">
     <property name="userDao" ref="userDaoImpl"/>
 </bean>
 <bean id="userDaoImpl" class="com.ck.spring5.dao.UserDaoImpl"></bean>

3、注入属性-内部bean和级联赋值
(1)一对多关系:部门和员工
一个部门有多个员工,一个员工属于一个部门
部门是1,员工是多
(2)在实体类之间一对多关系,员工表示所属的部门,使用对象类型属性表示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试:
在这里插入图片描述
4、注入属性-级联赋值
第一种写法在这里插入图片描述
第二种写法:
在这里插入图片描述
这样写需要在员工类中添加get方法,需要获取到这个对象
在这里插入图片描述


IOC操作Bean管理(xml注入集合属性)
1、注入数组类型属性

2、注入List集合类型属性

3、注入Map集合类型属性

(1)创建类,定义数组、list、map、set类型属性,并生成他们的set属性。
在这里插入图片描述
(2)在spring配置文件进行配置

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

在这里插入图片描述

在这里插入图片描述
4、在集合里面设置对象类型值
在这里插入图片描述

5、把集合注入部分提取出来
(1)在spring配置文件中引入命名空间util
在这里插入图片描述
有对象和字符串的例子:
在这里插入图片描述
实际中的写法:
在这里插入图片描述

(2)基于注解方式实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值