《Spring+in+action+中文版(第4版)》读书笔记

1 Spring到底做了什么?
Spring通过面向pojo编程、DI、切面和模板技术来简化java开发的复杂性!
2 Bean装配
Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系。Spring提供3中装配机制:
在xml中进行显式配置
在java中进行显式配置
隐式的bean发现机制和自动装配
无论哪种配置或者综合配置最终都是实现了两个功能:声明bean和装配bean;
其中java显示配置和xml显示配置可以交叉引用
单元测试读取spring bean
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(“classpath:./config/applicationContext.xml”)/@ContextConfiguration(classes = CDPlayerConfig.class)
3 配置profile bean
说明:轮廓、剖面意思。
用于进行bean的选择性生成,可以应用在部署、开发、生产环境的时候进行多数据库的配置。
使用方法:
3.1 正常配置bean方式只是在java中需要交@Profile(对应bean的唯一标志位)注解;xml中注入需要配置
3.2 配置了多少profile现在需要进行激活,激活方式需要配置Spring.profiles.active(default)属性,可以作为dispatcherServlet的初始化参数或者作为web应用上下文参数进行配置,例如在web项目中,在web.xml文件配置:

spring.profiles.default
dev
3.3 单元测试使用profile
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(“classpath:./config/applicationContext.xml”)/@ContextConfiguration(classes = CDPlayerConfig.class)
@activeprofiles(“dev”)
4 Spring 4.0提供比上述profiles更好的条件化创建bean方式:@conditional(有条件的;假定的)
实例的应用是判断当前电脑系统,win 文件存在哪,linux 文件存到那:https://www.cnblogs.com/dyppp/p/7732084.html
5 Spring Bean 的作用域
四种作用域,单例(singleton)(默认),原型(prototype)、会话(session)、请求(ruquest)
单例或原型可以使用@scope注解或者xml中的scope=“prototype” (这是原型),来进行设置
会话或请求需要使用代理的方式进行设置,proxyMode=ScopedProxyMode.INTERFACES或者xml配置aop:scoped-proxy 默认使用
6 外部文件(属性文件)注入
6.1 在java中使用@PropertySource注解和Environment
例如:

6.2 在xml中加入
context:property-placeholder/
之后使用${cas}或的数据
7 SpringEL =spring expression language spring表达式语句
和6的的外部文件注入类似,springEL 使用的是#{} 来进行注入标识使用方式
使用方式
7.1 将bean 属性装配到另一个bean属性中, =》#{beanid.property}
7.2 将bean方法装配到另一个bean中 =》#{beanid.mothed}
7.3 Java 中使用上springEL进行装配,使用@Value注解,例如属性值cas可以设置成
@Value(‘#{cas,properties[cas.url1]}’)
8 Spring AOP
AOP术语解释(实际上不是很准确,但是没办法都这么说,只能记录了):
通知(advice):指的是切面的工作,就是切面主要是干什么的,什么时候使用切面。Spring切面定义了5中类型通知,前置通知、后置通知、返回通知、异常通知、环绕通知。
连接点(Join point):是在应用执行过程中能够插入切面的一个点,切面代码可以利用这些点插入到应用插入到应用正常流程中,并添加新的行为。
切点:(poincut)切点定义了切面工作的具体的点,比通知更加的精确
切面:(aspect):通知+切点
引入(introduction):运行我们向现有类添加新的方法和属性
织入(weaving):是把切面应用到目标对象并创建新的代理对象的过程。在目标的生命周期里有多个点可以进行织入:编译期,类加载期、运行期(spring AOP默认是使用这个方式,使用代理的方式,所有spring只支持方法级别的连接点)
使用AOP 两种方式,javaconfig或者xml
首先定义切面:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值