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>

          

原文地址:https://www.cnblogs.com/wfswf/p/Spring.html