欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring框架概述以及重要知识点解析

程序员文章站 2022-06-28 17:28:30
Spring框架重要知识点总结(一)一、spring框架概述spring解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。二、spring框架的优点1、方便解耦,简化开发;2、支持面向切面编程(AOP);3、支持声明式事务的处理,只需要通过配置对事务进行管理无需手动;...

一、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
第三步:导入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"/>
②工厂创建的时候直接加载多个配置文件

本文地址:https://blog.csdn.net/javaScript1997/article/details/107989954