Spring框架重要知识点总结(一)

一、spring框架概述

spring解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

二、spring框架的优点

1、方便解耦,简化开发;2、支持面向切面编程(AOP);
3、支持声明式事务的处理,只需要通过配置对事务进行管理无需手动;4、方便程度测试。spring对Junit支持,可以通过注解测试spring程序;5、方便集成优秀框架;6、降低API的使用难度;

三、spring核心技术

(一)什么是IOC

IOC:控制反转,将对象创建的权利反转给spring的框架,是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。

1、IOC程序入门

第一步:创建maven仓库java工程
第二步:引入坐标①spring-context②commons-logging③log4j④junit
主要的4大jar包:
①Spring Beans:Spring IOC的基础实现,包含访问配置文件、创建和管理bean等,所有应用都用到。
②Spring Context:在基础IOC功能上提供扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持。
③Spring Core:Spring的核心工具包 ,其他包依赖此包
④spring-expression-3.1.0.RELEASE.jar
第三步:导入log4j文件
第四步:使用接口方式,创建业务层和持久层
第五步:并在测试类中调用(使用创建对象的方式)
接下来使用新方式IOC:
1.1首先创建applicatinContext.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">

    <!--IOC管理bean-->
    <bean id="userService" class="demo.serviceImpl" />

</beans>

1.2编写测试类
步骤:①创建spring工厂;②从容器中获取;③调用方法

@Test
    public void run(){
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        Service service = (Service) ac.getBean("userService");
        service.save();
    

2、IOC技术总结

ApplicationContext接口,工厂的接口,使用该接口可以获取到具体的Bean对象。该接口下有两个具体的实现类。
ClassPathXmlApplicationContext(加载类路径下的spring配置文件)
FileSystemXmlAppLicationContext(加载本地磁盘下的spring配置文件)

3、Spring框架的Bean管理的配置文件方式

id属性,Bean起个名字,在约束中采用ID的约束,唯一,取值要求:必须以字母开始,可以使用字母、数字、连字符、下划线、句话、冒号 id:不能出现特殊字符。
class属性,Bean对象的全路径。
scope属性,scope属性代表Bean的作用范围。
singleton单例(默认值),最常用的方式。
prototype多例
request应用在Web项目中,每次HTTP请求都会创建一个新的Bean
session应用在Web项目中,同一个HTTP Session 共享一个Bean
Bean对象的创建和销毁的两个属性配置
说明:Spring初始化bean或销毁bean时,有时需要作一些处理工作,因此spring可以在创建和拆卸bean的时候调用bean的两个生命周期方法
init-method,当bean被载入到容器的时候调用init-method属性指定的方法
destroy-method,当bean从容器中删除的时候调用destroy-method属性指定的方法

4、实例化Bean对象的三种方式

默认是无参数的构造方法(默认方式,基本上使用)

<bean id="userService" class="demo.serviceImpl" />

静态工厂实例化方式
实例工厂实例化方式

(二)什么是DI依赖注入

DI:依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件中

1、属性的set方法注入值

编写属性,提供该属性对应的set方法,编写配置文件完成属性值的注入

// 编写成员属性,一定需要提供该属性的set方法
private OrderDao orderDao;
// 一定需要提供该属性的set方法,IOC容器底层就通过属性的set方法方式注入值
public void setOrderDao(OrderDao orderDao) {
    this.orderDao = orderDao;
}
// 消息
private String msg;
// 年龄
private int age;
public void setMsg(String msg) {
    this.msg = msg;
}
public void setAge(int age) {
    this.age = age;
}

配置文件中

<bean id="os" class="cn.tx.service.OrderServiceImpl">
    <property name="orderDao" ref="od" />
    <property name="msg" value="你好" />
    <property name="age" value="30" />
</bean>

2、属性构造方法注入值

对于类成员变量,构造函数注入。

public class Car {

// 名称
private String cname;
// 金额
private Double money;

public Car(String cname, Double money) {
    this.cname = cname;
    this.money = money;
}

@Override
public String toString() {
    return "Car{" +
            "cname='" + cname + '\'' +
            ", money=" + money +
            '}';
}}

配置文件

<bean id="car" class="cn.tx.demo2.Car">
    <constructor-arg name="cname" value="大奔" />
    <constructor-arg name="money" value="400000" />
 </bean>

3、数组,集合(list,set,map)Properties等的注入

// 数组
private String [] strs;
public void setStrs(String[] strs) {
    this.strs = strs;
}

private List<String> list;
public void setList(List<String> list) {
    this.list = list;
}

private Map<String,String> map;
public void setMap(Map<String, String> map) {
    this.map = map;
}

private Properties properties;
public void setProperties(Properties properties) {
    this.properties = properties;
}

配置文件

<!--给集合属性注入值-->
<bean id="collectionBean" class="cn.tx.demo3.CollectionBean">
    <property name="strs">
        <array>
            <value>美美</value>
            <value>小凤</value>
        </array>
    </property>
    <property name="list">
        <list>
            <value>亮亮</value>
            <value>建云</value>
        </list>
    </property>
    <property name="map">
        <map>
            <entry key="aaa" value="聪聪"/>
            <entry key="bbb" value="淞铭"/>
        </map>
    </property>
    <property name="properties">
        <props>
            <prop key="username">root</prop>
            <prop key="password">123456</prop>
        </props>
    </property>
</bean>

4、多配置文件的加载方式

在src的目录下又多创建了一个配置文件,现在是两个核心的配置文件,那么加载这两个配置文件的方式有两种!
<import resource="applicationContext2.xml"/>
②工厂创建的时候直接加载多个配置文件

下一节:
链接: Spring框架重要知识点总结(二).

猜你喜欢

转载自blog.csdn.net/javaScript1997/article/details/107989954