• Spring总结


    1.Spring简介

      Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的javaBean来完成以前只可能有EJB完成的事情。然而,Spring的用途不仅仅是限于服务器端的开发。从简单、可测性和松耦合性角度而言,绝大部分java应用都可以从Spring中受益。

      Spring是轻量级开源的JavaEE框架,Spring可以解决企业应用开发的复杂性。

    2.Spring的核心组成部分IOC 和 AoP

    (1)IOC:控制反转,不创建对象的过程交给Spring容器管理

    (2)AoP: 面向切面,不修改源代码进行功能增强。

    3.Spring特点

    (1) 方便解耦,简化开发

    (2) AoP编程支持

    (3) 方便程序测试

    (4) 方便进行事务操作

    (5)降低API开发难度

    4.下面以各种Spring的例子来演示Spring的用法

      a.创建普通java项目,导入Jar包

      

      b.在src目录下面创建如下xml配置文件(Spring Config)

      c。创建相应的对象类

        

    public class User {
        public void add(){
            System.out.println("..............add");
        }
    }

      d.在上述配置文件中声明对象的创建

    <!--配置User对象创建-->
        <bean id="user" class="com.atguigu.spring5.User"></bean>

      e.创建测试类进行测试

    public class TestSpring5 {
    
        @Test
        public void testAdd(){
            //1.加载spring配置文件
            ApplicationContext context =
                    new ClassPathXmlApplicationContext("bean1.xml");
            //2.获取配置创建的对象
            User user = context.getBean("user", User.class);
            //3.调用方法
            user.add();
    
        }
    }

     5.关于IOC的介绍,我在另一篇博客中有所涉及,可以去查看一下

    6.IOC操作Bean管理

      a.什么是Bean管理

        Bean管理是指Spring创建对象,Spring注入属性两个操作

      b.Bean管理的操作方式

        Bean管理有两种操作方式,一种是机遇xml文件实现方式,另一种是基于注解是实现方式

    7.IOC操作Bean管理(基于xml方式)

      a.基于xml方式创建对象

        上面举出的例子就是基于xml方式创建对象,值得注意的是,创建对象时,默认的也是执行无参数的构造方法创建对象。

      b.基于xml方式注入属性

        (1)使用set方式进行属性注入

    首先创建一个Book类,注意这个类中需要有set方法,要不然一会配置文件中会报错    

    
    
    public class Book {
        //创建属性
        private String bname;
        private String bauthor;
        private String address;
        //创建属性对应的set方法
        public void setBname(String bname){
            this.bname = bname;
        }
    
        public void setBauthor(String bauthor) {
            this.bauthor = bauthor;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    
        public void testDemo(){
            System.out.println(bname+"::"+bauthor+"::"+address);
        }
    }

      在相应的xml文件中配置相关属性  

    <!--set方法注入属性-->
        <bean id="book" class="com.atguigu.spring5.Book">
            <!--使用property完成属性注入
                name:类里面的属性名称
                value: 向属性注入的值-->
            <property name="bname" value="易筋经"></property>
            <property name="bauthor" value="达摩老祖"></property>
            <!--特殊字符串 1.转义 2.把带特殊字符串的内容写道CDATA-->
            <property name="address">
                <value><![CDATA[<<南京>>]]></value>
            </property>
        </bean>

    set方法还有另外一种比较简写参数配置方式,就是p标签,感觉就类似于将<property>属性变成了标签,具体配置文件如下

    <?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">
    <!--使用p标签,需要在xml文件顶部添加相关配置-->
        <bean id="book1" class="com.atguigu.spring5.Book" p:bname="九阳神功"
              p:bauthor="无名氏"></bean>

    调用对应的测试类

    public class TestSpring5 {
    
        @Test
        public void testAdd(){
            //1.加载spring配置文件
            ApplicationContext context =
                    new ClassPathXmlApplicationContext("bean1.xml");
            //2.获取配置创建的对象
            Book book = context.getBean("book", Book.class);
            //3.调用方法
            book.testDemo();
    
        }

      (2)使用有参数构造进行注入

        在使用有参数构造方法进行方法注入式,在相应类中必须有有参构造方法,其余除了bean文件之外,其它东西与使用set方法进行属性注入相同

    <!--有参函数构造注入属性-->
        <bean id="orders" class="com.atguigu.spring5.Orders">
            <constructor-arg name="oname" value="电脑"></constructor-arg>
            <constructor-arg name="address" value="China"></constructor-arg>
        </bean>

              

  • 相关阅读:
    swagger本地环境搭建
    上传图片报错
    接口自动化测试---环境搭建
    IDEA 运行程序提交hdfs时,报错
    hadoop2.60集群搭建
    查找排除当前最大、最小salary之后的员工的平均工资avg_salary。
    按照salary的累计和running_total,其中running_total为前两个员工的salary累计和
    CSS补充
    BFC(块级格式化上下文)
    CSS精灵技术
  • 原文地址:https://www.cnblogs.com/wfswf/p/Spring.html
Copyright © 2020-2023  润新知