概述
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( ); 获取事务是否只读
最后
以上就是无奈山水为你收集整理的Spring的全部内容,希望文章能够帮你解决Spring所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复