SSM总结

一.Spring

1.Spring概念
Spring是一个轻量级的框架,也是一个容器,主要用来管理bean工厂。利用Spring可以大幅提高开发代码的效率,也可以大幅降低代码之间的耦合度。

2.IOC(控制反转)与DI(依赖注入)
不是一种设计模式而是一种思想,是同一概念在不同时期由不同人提出的。其主要思想是程序员不需要主动去创建对象获取实例而是将这个任务交给Spring被动创建对象及其实例。就好比点外卖,我们有时候不想自己做饭,通过点外卖可以将此任务交由第三方进行处理下单,然后将外卖送至你的手中。
IOC容器的本质是XML文件,创建对象以及查找依赖对象的工作交给了Spring。

3.Spring的组成
分别是:数据访问与集成、面向切面编程、instrumentation、spring核心容器、web原创调用、测试。

4.Spring IOC容器的工作原理
首先对xml文件里的bean的配置信息进行读取,然后进行装配,最后由客户端发出请求从容器中获取对象。

5.IOC容器的两种类型
1.Spring BeanFactory容器 基础级的容器
2.Spring ApplicationContext容器 企业级的容器,可以从属性文件中解析文件信息并将事件传递给监听器。包括1的所有内容,实际开发中要采用大于或等于1的级别。
其内容包括:a.FileSystemXmlApplicationContext(需要Path路径)
 b.ClassPathXmlApplicationContext(最常用) c.XmlWebApplicationContext d.AnnotationConfigApplicationContext e.AnnotatonConfigWebApplicationContext

6.利用IOC管理Bean
①.基于xml的配置:
1.属性注入(setter)
是通过<property>标签来定义的,有多少属性就配置多少个property ****ref

2.构造器注入
是通过<constructor>标签来定义的,有n个constructor子标签就选用带有n个参数的构造器自动注入(要注意的是1.顺序必须与构造器中的一致,也可采用index属性来定义顺序2.可以用name属性定义别名3.可以用type属性定义类型)

3.集合属性注入
可通过list标签进行集合注入。
<list>
<ref bean="car1"></bean>
<ref bean="car2"></bean>
</list>

7.bean的作用域
a.singleton(每次只允许创建一个bean实例,缺省情况下的默认值,在IOC容器初始化时就获取对象。可以使用lazy-init来指定是否延迟创建)
b.prototype(通过getBean()方法获取实例,每次调用bean即可获取一个实例,在用户调用对象时获取对象)
c.request(每有一个http请求即获取一个实例,仅适用与webApplicationContext环境)
d.session(同一个http session获取同一实例,不同http session获取不同实例。仅适用与webApplicationContext环境)
e.globalsession

8.bean的生命周期
bean的生命周期经历了
(1).首先要通过三种注入方式进行bean的注入,然后需要将其进行前置处理,选择bean的init-method属性,然后在对应的pojo类中添加方法。
(2).然后进行bean的使用,在使用完毕后进行后置处理,选择destroy-method属性,然后在对应的pojo类中添加方法,最后进行bean的销毁。
这样就是一个完整的bean的生命周期,用过程描述如下:
实例化对象→bean的注入→调用BeanPostProcessor接口的before方法→调用initializingBean的after方法→init-method属性指定的方法→调用BeanPostProcessor接口的after方法→bean的作用域→调用disposable的destroy方法→destroy-method属性指定的方法

9.bean的继承关系
关于bean之间的继承需要用到 parent属性。分别有四种方式:
(1).直接在pojo中创建子类
(2).基于xml下的,通过bean的继承实现类的继承
(3).基于xml下的,将相同属性值提取出来定义一个父类bean,然后让所有的子类bean继承他并进行重写。
(4).定义抽象bean,可以将abstract设置为true
总结来看,关于bean的继承关系与java中类的继承关系有很大区别。前者是实例与实例之间的继承关系,后者是类与类之间的继承关系。

10.bean的自动装配
使用Autowire属性设置为true便可实现对bean的自动装配,而bean的自动装配类型又有
a.default 默认不使用自动装配。
b.byName 通过bean的setter方法名进行自动装配,通过bean的id与setter方法的首字母小写并去掉set的字段进行匹配,若匹配成功,则返回对象。
c.byType 通过setter方法的形参类型进行自动装配,若找到一个setter方法与bean匹配,则返回对象;若找到多个,输出异常;若没找到,无动作发生。
d.constructor 通过bean的无参、有参构造器进行自动装配。

11.基于注解的管理
@Component 用于pojo模型层
@Service 用于业务层
@Controller 用于表现层,表明该类扮演控制器的角色
@Repository 用于持久层
@Autowired 自动装配Bean
@RequestMapping 处理http请求到指定的URL
@Resource bean的注入
@Scope bean的作用域
@preDestroy @PostConstruct Bean的生命周期
*开启包的注解扫描
ContextComponentScan


12.Spring的AOP
AOP:即面向切面编程,采用这种方式可以大幅降低模块之间的耦合度,可以是各个模块的业务逻辑得到较好的分离,即为业务逻辑设立不同的多个切面和切入点,在访问时只需将连接点连入切入点进而访问切面,同时,会进行一些增强处理。

13.AspectJ和AOP的区别
AspectJ是需要特定的编译器的且其是一个面向切面的框架,而AOP不需要特定的编译器,是通过动态代理的方式实现的创建对象的过程。

14.AOP增强处理的类型
a.前置增强处理(目标方法执行前)b.后置增强处理(目标方法执行后)c.环绕增强处理(目标方法执行前后,一般用于多线程)d.抛出异常增强处理(目标方法执行抛出异常后)
在xml文件中基于零注解的配置:<aop:aspectj-autoproxy/>

15.AOP的配置
a.基于注解的配置:使用@pointcut注解中的execute方法
b.基于xml的配置:使用<aop:config../>标签配置
要么全部使用基于注解的配置,要么全部使用基于xml的配置。一旦混用将会报错发生异常。

16.数据库连接池
数据库连接池负责分配、管理和释放连接。使用数据库连接池可以提高数据库的可利用性
并提高数据库的效率,能有效避免数据丢失。
a.C3P0
需要在xml配置的:扫描包结构,加载外部配置文件,定义配置文件(jdbcDriver,jdbcUrl,jdbcUsername,jdbcPsw),最小连接数,最大连接数(要注意最小与最大的差距),关闭连接后不自动commit,获取连接失败重试的次数。
b.DBCP
c.proxool

17.Spring的事务,事务的作用。
? 编程式事务管理:这意味你通过编程的方式管理事务,给你带来极大的灵活性,但是难维护。
? 声明式事务管理:这意味着你可以将业务代码和事务管理分离,你只需用注解和XML配置来管理事务。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值