java框架—Spring

Spring框架
	可以一站式的构建企业级应用,解决企业开发的复杂性,spring使用基本的javaBean就可以只能由EJB(Enterprise Java Bean将功能集成在服务器端,用户无序知道方法细节的条件下就可以远程调用程序功能)完成的工作。Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。
	Spring框架的优势:降低J2EE的开发难度、面向对象的技术比任何实现技术都重要、面向接口编程、Spring将实用接口的复杂度降低到零、可以很容易的进行单元测试、JavaBean提供方程序配置的最好方法。
	IOC:控制反转(Inversion of control),降低每个类之间的直接关系,
	SpringIoc工作原理:Spring初始化时会读取配置文件中的诸多Bean,根据Bean的.class 值找到对应的Class字节码文件,通过反射技术创建出一个个对象,创建的对象存放到内部的Map结构中,等到需要使用时就直接从map容器中取出。
	Spring API:BeanFactory(是IOC的核心接口定义IOC的基本功能,管理bean的加载维护bean之间的关系,需要使用该类Bean时才对该Bean实现实例化)、ApplicationContext(在启动ApplicationContext时一次性加载所有的Bean)
	SpringBean详解:使用默认化无参构造函数,使用工厂实例化对象,
	Bean的作用范围与生命周期(scope):singleton(默认)	单例设计模式IOC只创建一次,然后一直存在;prototype每次获取Bean对象的时候都会重新创建;request web创建一个Bean对象时就将对象存入到request中。Bean的生命周期由Spring管理,只有spring关闭IOC容器才会将其销毁。
	控制反转==依赖注入:控制反转以后获得依赖的过程由自身主动获取变为了IOC主动注入。
	多种数据类型的注入:通过构造函数注入、通过setter属性注入、注入属性集合
	Spring整合jdbc:spring提供了IOC容器管理jdbc操作数据库过程需要数据库连接对象,同时spring提供完整的jdbc操作数据库的工具类jdbcDaoSupport和模板工具JdbcTemplate。
	Spring整合DbUtils:是Apache用于简化DAO层代码的工具类,底层封装了JDBC技术,使用QueryRunner用于执行CRUD的Sql语句,ResultSetHandler接口主要用于将数据库返回的记录封装到实体对象。
	Spring整合C3p0数据源、Spring-jdbc自带数据源、阿里巴巴数据源Druid、DBCP数据源。
	常用基本注解:@component用于实例化对象,相当于<bean id=””class=””/>支持一个属性相当于xml中bean的id,不写的话默认为类名小写;@Controller一般用于实例化表现层的类;@service一般用于业务层的类的实现;@repository一般标注于持久层上用于实例化;@Autowried按照类型注入;@qualifier基于Autowried在按照Bean的id注入;@value用于简单数据类型注入;@resource直接按照Bean的id注入;@scope用于指定bean的范围。@configuration用于指定当前类是一个配置类;@Bean表示用此方法创建一个对象并将其放入Spring容器,支持一个name属性用于给生成的bean取一个id;@ComponentSource用于指定Spring在初始化容器是需要扫描的包;@PropertySource用于加载**.properties文件中的配置;@RunWith指定spring的单元测试器;@Transaction事务管理器。
	动态代理:代理类主要负责为委托类预处理消息、过滤消息把消息传递给委托类,代理类并不真正实现服务,而是通过调用委托类的相关对象的方法来提供特定的服务。GDK动态代理基于接口实现、CGLIB基于子类实现动态代理。
	SpringAOP:AOP(Aspect Oriented Programming)是OOP(面向对象编程)的延续,zaiOOP的基础上进行横向开发,专业术语(连接点Join point:是方法的执行点只有方法的连接点、切点Point cut:AOP提供一些规则按照这些规则取切割连接点,匹配出来的即为切点、增强Advice:任意一个具体有意义的功能、织入WeAVing:将增强代码加入到核心代码的过程、目标对象Target:在核心代码上加入增强代码后的对象、切面Aspect:包含Advice和Pointcut,Advice定义Aspect什么时候执行,Pointcut确定了从哪里切入,可以说明Aspect定义了的增强功能是什么,定义的切点在哪里)。
	SpringAOP的xml方式:如果被代理实现了接口就采用GDK动态代理,如果没有接口就采用CGLIB动态代理。
	AOP工作流程:开发阶段开发公共性能制作为增强切面的bean,开发非公共性能作为切点,在配置文件中说明切点与增强之间的关系;运行阶段中JVM读取配置文件的信息,监控切入点的执行,切入点方法被执行立即使用代理机制,动态创建目标对象,在代理对象位置将增强功能织入,完成代码运行逻辑。
	SpringAOP对事务的支持:数据库事务(指对数据库进行读写的一个操作)、系统中的事务(处理一系列的执行逻辑单元,该单元的操作要么全部成功要么全部失败)、事务的作用(保证数据的一致性和完整性)、事务的特性(ACID:原子性Atomicity,事务的操作全部成功或者失败;一致性Consistency,数据库从一个一致性状态转变为另一个一致性状态;隔离性Isolation:事务相互隔离互不干扰;持久性Durability:事务提交以后就会被永久保存下来)。
	Spring中的事务控制:声明式的事务是建立在AOP基础之上的,其本质为在方法开启之前创建事务,方法结束后根据执行情况提交或者回滚事务。
	事务管理的核心类和方法:PlatformTransactionManager平台管理器、TransactionStatus事务运行状态、TransactionDefinition事务的定义信息、只读事务isReadOnly、事务超时。
	使用AOP需要有三部分:核心业务代码、增强业务代码、切面配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值