Spring知识

Spring
spring主要模块

spring-core:核心模块,主要提供ioc依赖注入功能。

spring-aspects:与AspectJ的集成提供支持。

spring-aop:提供了面向切面编程的实现。

spring-jdbc:数据库连接。

spring-jms:消息服务。

spring-orm:用于支持mybatis等orm框架。

spring-web:为创建web应用程序提供支持。

spring-test:提供junit和testNG测试的支持。

spring-mvc

@Controller + @ResponseBody = @RestController 4.0版本后新加的注解 restful风格 web服务

IOC

控制反转,是一种设计思想,手动创建对象的控制权,交给spring框架管理。IOC容器实际上是一个MAP。

AOP

面向切面编程,将那些与业务无关,业务模块共同调用的逻辑或责任(事务,日志,权限等)封装起来,减少重复代码,降低耦合度,方便扩展与维护。

springAOP基于动态代理,如果要代理的对象,实现了某个接口,springAOP会使用JDKproxy实现代理对象。

如果要代理的对象没有实现接口,springAOP会使用cglib生成一个被代理对象的子类作为代理。

spring aop 与AspectJ aop区别

springaop属于运行时增强(基于代理),AspectJ是编译时增强(基于字节码)。

spring中bean的作用域

singleton,prototype,request,session,global-session

spring声明类注解

@service

@component

@controller

@Repository

spring中bean的生命周期

实例化bean

注入属性

Aware相关接口依赖

BeanPostProcessor接口before方法

是否实现InitializingBean接口,调用afterpropertiesSet方法。

自身init-method方法

BeanPostProcessor接口after方法。

是否实现DisposableBean接口,调用destroy()方法。

自身destroy-method方法

springBean默认为单例singleton

多线程操作单例bean的非静态成员变量会又线程安全问题。

解决办法:避免定义可变的成员变量。

在类中定义TreadLocal成员变量,将需要的可变成员变量保存在TreadLocal中(推荐)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值