Spring5学习

Spring5学习在这里插入图片描述

Spring5学习

1、Spring的概念:

1.1Spring框架的概述:

    1、Spring 是轻量级的开源的JavaEE框架
    
    2、Spring 可以解决企业应用开发的复杂性
    
    3、Spring 有两个核心部分:
        3.1 IOC:控制反转,把创建对象的过程交给Spring进行管理
        3.2 AOP:面向切面,不修改源代码进行功能增强
    
    4、Spring特点:
        4.1:方便解耦,简化开发
        4.2:Aop编程支持
        4.3:方便程序测试
        4.4:方便和其他框架进行整合
        4.5:方便进行事务操作
        4.6:降低API开发
    
    5、基于Spring5.x的学习
        5.1: Spring下载地址:https://repo.spring.io/ui/native/release/org/springframework/spring/
    
    6、创建普通类,在这个类中创建普通方法
        public class User {
            void add(){
                System.out.println("add ...");
            }
          }
          
    7、创建Spring配置文件,在配置文件中配置对创建的对象
    
        7.1 Spring配置文件使用xml格式:
<?xml version="1.0" encoding="UTF-8"?>

<!--配置User对象的创建-->
<bean id="user" class="com.tank.spring5.User"/>
        7.2 通过Spring.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对象的创建-->
            <bean id="user" class="com.tank.spring5.User"/>
        </beans>
        
        7.3 进行测试代码的编写:
        public class TestAdd {
            @Test
            public void testAdds() {
                //1、加载Spring配置文件
                ApplicationContext contexts = new ClassPathXmlApplicationContext("bean1.xml");
                //2、获取配置创建的对象
                User user = contexts.getBean("user", User.class);
                System.out.println(user);
                user.add();
            }
        }

2、IOC容器

1、什么是IOC
    1.1 控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理
    1.2 使用IOC的目的:为了耦合度降低
    1.3 做入门案例就是IOC实现
    
2、IOC底层原理
    2.1 xml解析、工厂模式、反射

3、画图了解IOC底层原理
		IOC过程

在这里插入图片描述

4、IOC(BeanFactory 接口)
    4.1 IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
    4.2 Spring提供IOC容器实现两种方式:(两个接口)
        4.2.1 BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员直接使用
         *加载配置文件的时候并不会创建对象,而是在获取对象(调用)才去创建对象
        4.2.2 ApplicationContext:BeanFactory接口的子类,提供更多更强大的功能,一般由开发人员使用
         *加载配置文件时候就会把在配置文件对象进行创建  
5 、ApplicationContext接口对应有的实现类

在这里插入图片描述
6 、IOC操作Bean管理(概念)
Bean管理指的是两个操作:1、Spring创建对象 2、Spring注入属性
Bean管理操作的实现方式:1、基于XML配置文件实现 2、基于注解方式实现
6.1 、IOC操作Bean的管理(基于XML方式)

  	           	         <!--配置User对象的创建-->
  	           	         <bean id="user" class="com.tank.spring5.User"/>
           	         1、在Spring的配置文件中,使用bean标签,bean标签里边添加对应的属性,就能完成对象的创建
           	         2、在bean标签中有很多的属性,常用的属性方式有:*1 id属性:唯一标识  *2 class属性:类包的全路径
           	         3、在Spring创建对象的时候默认调用的也是无参构造方法完成对象的创建
  	6.2 、基于XML的方式注入属性
           	         1、DI:依赖注入,就是注入属性
           	         *1、第一种创建方式,基于set方法进行注入、创建类、完成属性的定义和set方法的书写
           	          
							/**
							 * @program: spring5_demo1
							 * @description: 测试属性的set方式注入
							 * @packagename: com.tank.spring5.demo
							 * @author: showcase
							 * @date: 2022-03-11 11:53
							 **/
							public class Book {
							
							    // 创建属性
							    private String bookId;
							    private String bookNmae;
							    // 属性的set方法
							    public void setBookId(String bookId) {
							        this.bookId = bookId;
							    }
							    public void setBookNmae(String bookNmae) {
							        this.bookNmae = bookNmae;
							    }
							}
					    也可在Spring配置文件中配置对象的创建、配置属性的注入
						    <!--配置User对象的创建-->
						    <bean id="book" class="com.tank.spring5.demo.Book">
						        <!--使用property完成对象的创建-->
						        <property name="bookId" value="001"></property>
						        <property name="bookNmae" value="云边有个小卖部"></property>
						    </bean>
           	         *2、第二种注入方式:使用有参构造进行注入
           	            (1) 创建类、定义属性、创建属性对应有参数构造方法
           	        		/**
							 * @program: spring5_demo1
							 * @description: 测试有参构造注入的方式
							 * @packagename: com.tank.spring5
							 * @author: showcase
							 * @date: 2022-03-11 13:43
							 **/
							public class Orders {
							    // 属性
							    private String orderId;
							    private String orderName;
							    // 有参构造
							    public Orders(String orderId, String orderName) {
							        this.orderId = orderId;
							        this.orderName = orderName;
							    }
							    public void orderDemo(){
							        System.out.println(orderId + "<   >" + orderName);
							    }
							}
           	            (2) 在Spring配置文件中进行配置
           	            <!--配置orders对象的创建-->
					    <bean id="order" class="com.tank.spring5.Orders">
					        <!--使用property完成对象的创建-->
					        <constructor-arg name="orderId" value="001电脑"></constructor-arg>
					        <constructor-arg name="orderName" value="China"></constructor-arg>
					    </bean>
           	            (3) demo测试
						    @Test
						    public void testOrders() {
						        //1、加载Spring配置文件
						        ApplicationContext contexts = new ClassPathXmlApplicationContext("bean1.xml");
						        //2、获取配置创建的对象
						        Orders orders = contexts.getBean("order", Orders.class);
						        orders.orderDemo();
						    }
						(4) 执行结果为:001电脑<   >China
  	6.2、IOC操作Bean的管理(XML注入其他类型属性)
           	         1、字面量
           	         (1) null值
           	          	        <!--null值-->
						        <constructor-arg name="address">
						            <null/>
						        </constructor-arg>
           	         (2) 属性值包含特殊符号
           	         		<!--属性值包含特殊符号 1、把<>进行转义 &lt;&gt;  2、把特殊符号内容写到CDATA-->
           	                 <!--null值-->
					        <constructor-arg name="address">
					            <value><![CDATA[<<北京>]]></value>
					        </constructor-arg>
           	         2、注入属性- 外部 bean

3、Aop

4、JdbcTemplate

5、事务管理

6、Spring5新特性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值