介绍Spring

概念

Spring Framework是一款轻量级容器,可以使用struts和webwork等众多的web应用程序结合使用,也可以单独使用,核心技术点为面向切面(AOP)和控制反转IOC

特点

1.轻量:不依赖与其他的对象,单独使用
2.容器:xml中设置声明周期和配置
3.框架:系统中的对象通过xml文件配置组合起来

什么是IOC

控制反转(IOC)也称之为依赖注入,基本概念是是:由容器控制程序之间的一个依赖关系,组件对象控制权的转移,从程序代码本身
转移到了外部容器当中,主要负责对象的创建、管理、装配、管理这些对象的整个生命周期

什么是AOP

它是作为面向对象的一种补充,主要一个作用就是对那些与业
务无关但是对多个对象有影响力的行为进行抽取和封装为一个可重用模块

Spring的七大模块

Spring Core

Spring Core封装包是框架的最基础部分,提供IOC和依赖注入特性

Spring Context

构建Core封装包基础上的Context包,提供了一种框架式的对象访问方法,有些像JNDI注册器

Spring DAO

DAO提供了jdbc的抽象层,可以消除冗长的JDBC编码和解析数据库厂商特有的错误代码,并且JDBC还提供了一种比编程更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old java object)都适应

Spring ORM

ORM封装包提供了常用的“对象/关系”映射APls的集成层

Spring AOP

AOP模块是Spring的AOP库,提供了AOP(拦截器)机制,并提供了常用的拦截器,供用户自定义和配置

Spring Web

web模块提供对常见框架如struts1,webwork,JSF的支持,Spring能够管理这些框架,将Spring的资源注入给框架,也能在这些框架的前后插入拦截器

Spring Web MVC

Spring中的MVC封装包提供了Web应用的Model-View-Controller(MVC)实现

案例

控制反转(IOC)

HelloSpring类:

public class HelloSpring {
	//定义web属性,该属性的值将通过Spring框架进行设置
	private String who = null;
	
	/**
	 * 定义打印方法,输出一句完整的话
	 */
	public void print() {
		System.out.println("你好"+this.getWho()+"!");
	}

	public String getWho() {
		return who;
	}

	public void setWho(String who) {
		this.who = who;
	}
}

applicationContext.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">
    <bean id="helloSpring" class="demo.Spring">
    	<property name="who">
    		<value>Spring</value>
    	</property>
    </bean>
</beans>

测试类:

public class main {

	/**
	 * 测试方法(main)
	 */
	public static void main(String[] args) {
		//1:通过ClassPathXmlApplicationContext实例化Spring上下文
		ApplicationContext context = new 
				ClassPathXmlApplicationContext("applicationContext.xml");
		
		//2:通过ApplicationContext的getBean()方法,根据ID来获取Bean的实例
		HelloSpring spring =(HelloSpring)context.getBean("helloSpring");
		
		//3:执行print方法
		spring.print();
		
	}
}

上面是一个简单的IOC案例,当然有更复杂性的咱们就不做例子测试
下面来简单说明一下我们不仅可以使用简单的Value,还可以使用array数组、list集合、map集合、properties的注入等一些操作

AOP友情链接

这份AOP链接也是十分的精致,关于AOP的相关内容可以进这篇博客了解相关知识点,简单描述不如听别人细讲
Spring AOP超详细连接

事务

事务(Teansaction):是数据库的最小工作单元,要么都操作完成,要么都回滚撤销。Spring事务管理基于底层数据库本身的事务处理机制。数据库事务的基础,是掌握Spring事务管理的基础。

属性

事务有4个属性,分别为:原子性、一致性、持久新、隔离性

原子性

原子性事务是一个完整的操作,事务的各部操作是不可分割的,要么执行要么都不执行

一致性

一致性事务说白了就是当你的事务完成的时候,数据必须处于一致状态

隔离性

隔离性事务是对数据库进行修改的所有并发事务都是彼此隔离的,这也表明了事务必须是独立的,不应该以任何方式影响或依赖其他事务

持久性

持久性事务就是说当事务完成后,它对数据库的修改被永久保存,事务日志可以保存事务的永久性

隔离级别

事务的隔离级别分为为
Read Uncommitted --读未提交
Read Committed --读提交
Repeatable Read --可以重复读
Serializable --序列化

总结

今天主要描述的也是Spring的一些理论知识点,只是有过于一个简单的编码描述,其实Spring说白了主要的一个功效就是降低了JAVA EE API的一个使用难度,不过在现在的it发展史上在Spring后面又多了些Spring MVC、Spring Boot,Spring Cloud等一些,其实就是在Spring再次进行一个简化

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐