Spring

Spring框架

什么是?

Spring是分层的JavaSE/EE full-stack 轻量级开源框架,以IoC(Inverse of Control 控制反转)和AOP(Aspect Oriented Programming 面向切面编程)为内核,使用基本的JavaBean来完成以前只可能由EJB完成的工作,取代了EJB的臃肿、低效的开发模式。

在实际开发中,通常服务器端采用三层体系架构,分别为:

表示层(Web):在表示层提供了与Struts等框架的整合

业务逻辑层(Service):在业务逻辑层可以管理事务、记录日志等

持久层(Dao):在持久层可以整合Hibernate、JdbcTemplate等技术

Spring框架的优点:简单、可测试和松耦合等

Spring的体系结构

Beans:提供了BeanFactory,Spring将管理对象称为Bean。

Context:建立在Core和Beans模块的基础之上,它是访问定义和配置的任何对象的媒介。

Core:提供了Spring框架的基本组成部分,包括IoC和DI功能。

Spring为我们提供了两种核心容器,分别为BeanFactory和ApplicationContext

创建BeanFactory实例时,需要提供Spring所管理容器的详细配置信息,这些信息通常采用XML文件形式来管理

BeanFactory beanFactory=new XmlBeanFactory(new FileSystemResource("F: /applicationContext.xml"));

创建ApplicationContext接口实例,通常采用两种方法

1.通过ClassPathXmlApplicationContext创建 

2.通过FileSystemXmlApplicationContext创建

创建Spring容器后,就可以获取Spring容器中的Bean

1.Object getBean(String name);

根据容器中Bean的id或name来获取指定的Bean,获取之后需要进行强制类型转换。

2.<T> T getBean(Class<T> requiredType);

根据类的类型来获取Bean的实例。由于此方法为泛型方法,因此在获取Bean之后不需要进行强制类型转换。

Beans

如果把Spring看做一个大型工厂,则Spring容器中的Bean就是该工厂的产品。

Bean的本质就是Java中的类,而Spring中的Bean其实就是对实体类的引用,来生产Java类对象,从而实现生产和管理Bean 。

Beans配置

 XML配置文件的根元素是<beans>,<beans>中包含了多个<bean>子元素,每一个<bean>子元素定义了一个Bean

实例化bean

实例化Bean有三种方式,分别为构造器实例化、静态工厂方式实例化和实例工厂方式实例化

Bean的实例定义了7种作用域

什么是?

AOP的全称是Aspect-Oriented Programming,即面向切面编程

Jdk动态代理

JDK动态代理是通过java.lang.reflect.Proxy 类来实现的,我们可以调用Proxy类的newProxyInstance()方法来创建代理对象。对于使用业务接口的类,Spring默认会使用JDK动态代理来实现AOP。

Jdbc模板

Spring的JDBC模块负责数据库资源管理和错误处理,大大简化了开发人员对数据库的操作

针对数据库的操作,Spring框架提供了JdbcTemplate类,该类是Spring框架数据抽象层的基础。

JdbcTemplate类是Spring JDBC的核心类。

JdbcTemplate类的直接父类是JdbcAccessor,该类为子类提供了一些访问数据库时使用的公共属性

DataSource: 其主要功能是获取数据库连接,还可以引入对数据库连接的缓冲池和分布式事务的支持,它可以作为访问数据库资源的标准接口。

SQLExceptionTranslator:该接口负责对SQLException进行转译工作。

Spring JDBC模块主要由4个包组成,分别是core(核心包)、dataSource(数据源包)、object(对象包)和support(支持包)

Spring jdbc的配置

Spring JdbcTemplate的常用方法

execute()

execute(String sql)方法可用于执行sql语句

update()

update()用于执行插入、更新和删除操作

query()

query()用于执行数据查询操作

PlatformTransactionManager接口是Spring提供的平台事务管理器,主要用于管理事务

TransactionStatus getTransaction(TransactionDefinition definition);

用于获取事务状态信息

void commit(TransactionStatus status);

用于提交事务

void rollback(TransactionStatus status);

用于回滚事务

String getName( );                     获取事务对象名称

int getIsolationLevel( );             获取事务的隔离级别

int getPropagationBehavior( );  获取事务的传播行为

int getTimeout( );                      获取事务的超时时间

boolean isReadOnly( );             获取事务是否只读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值