(一)dependency injection(DI)
decoupling 解耦 wiring beans :dive deeper into how to piece together the components of an application. diverse 不同的,多种多样的,变化多的 alternative 供选择的,选择性的,交替的 leaner 精瘦的,贫乏的,简洁的 empower 授权,允许,使能够 evolve发展,进化,逐步形成 arguably 可论证的,可争辩的 inspired 有灵感的,官方授意的,V、激发、鼓舞 complexity复杂,复杂性 fundamental n、基本原理,基本原则,adj、基本的,根本的 bold大胆的,英勇的 invasive 侵略性的,攻击性的 eliminating消除,去除 trace 追踪 unleashing 释放 intimidate 恐吓威胁 conjure up 想起,使在脑海中显现 knight 骑士 damsel少女,年轻女人 rescue 营救 repertoire 全部节目 计算机指令系统
approach 方法,途径,接近 scattered 分散的,散乱的 chronicle编年史,年代记,记录 minstrels 歌手,艺人
1、依赖注入(Dependence Injection)之构造器注入
中心思路就是将各种类都依赖于xml容器
(1)spring 从容器中取东西的context 类:ClassPath XmlApplicationContext
public static void main(String[] args) {
// TODO Auto-generated method stub
ClassPathXmlApplicationContext context = new
ClassPathXmlApplicationContext("/config/SpringContext.xml");
Knight knight = context.getBean(Knight.class);
knight.embarkOnQuest();
context.close();
}
(2)AnnotationConfigApplicationContext 从一个或多个Java文件中的配置文件加载 spring 应用上下文
Java注解配置文件
@Configuration
public class KnightConfig {
@Bean
public Knight knight() throws FileNotFoundException
{
File file = new File("/test.txt");
PrintStream ps = new PrintStream(file);
return new BraveKnight(quest(),new Minstrel(ps));
}
@Bean
public Quest quest()
{
return new SlayDragonQuest(System.out);
}
}
测试:
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new
AnnotationConfigApplicationContext(com.springinjectionConfig.KnightConfig.class);
Quest quest = context.getBean(Quest.class);
Knight knight = context.getBean(Knight.class,quest);
knight.embarkOnQuest();
context.close();
}
(3)AnnotationConfigWebApplicationContext:用Java源文件加载spring web 应用上下文
(4)FileSystemXmlApplicationContext:与ClassPathXmlApplicationContext相比,只是配置文件存放的位置的写法不同,这个写的是绝对路径,classpath是相对路径
ApplicationContext context = new
FileSystemXmlApplicationContext("c:/knight.xml");
(5)XmlWebApplicationContext:加载包含在web应用中的一个或多个XML文件作为context
(二)aspect-oriented programming(AOP)
tweak 扭,拧,开足马力,着急 boilerplate 引用,样板文件 cradle 摇篮,发源地,发祥地 grave flavor情味 风味 instantiate 例示,举例说明 eligible 合格的,合适的,符合条件的 bucket 桶,水桶 contrast 对比,使对照 elaborate 精心制作的,详尽的,煞费苦心的
spring modules
spring框架的主旨部分是一个spring 容器:这个容器是管理spring-enabled 应用中的bean 是怎样被创建,配置和管理的。MVC模式是构建web应用的普遍方法,以便用户接口独立于应用逻辑
DataAccess and integration:JDBC ,Transaction ,ORM ,OXM ,Messaging ,JMS
Web and Remoting :Web, Web Servlet, Web portlet ,WebSocket
Aspect-oriented programming:AOP, Aspects
Instrumentation : instrument instrumentTomcat
Core spring container:Beans, Core, Context, Expression,Context Support
Testing:Test
stuck 被卡住了,不能动 glance 一撇 overlap 重复 重叠 overwheming 压倒性的,势不可当的 distress 危难,不幸,贫困,悲痛 explicit 明确的,清楚的,直率的 implicit 含蓄的,暗示的,盲从的 ease 轻松 舒适 安逸 清闲 bother 麻烦 烦恼compact 紧凑的,紧密的,简洁的 disc 圆盘,灌唱片 quaint 古雅的,奇怪的,离奇有趣的,做的精巧的 archaic 古代的,陈旧的,古体的,古色古香的 cassette 盒式磁带 illustration 说明 插图
例证,图解 delivery 交付,递送,传输 take note of 注意,记笔记 clue 线索,情节
derive 起源,源自 fare 经营,进展,遭遇,过活 verbosity 冗长,赘言,唠叨 verbose冗长的,啰嗦的 succinct 简洁的,简明的,紧身的,convention 大会 symbols象征,符号,符号表 peculiar 特权,特有财产 rendition 译文,演奏,提供 alternatively非此即彼的,二者择一的,作为一种选择 bizarre 奇异的 peculiar 特殊的,独特的,罕见的
DI依赖注入如同CD唱片和CD机,只有将CD唱片放入CD机中才能放出音乐,可以说CD唱片依赖于CD机来工作
构造参数注入两种方法:
(一)在构造参数节点通过ref属性指向另一个Bean的ID或者用Value属性直接赋值
<bean id="cdPlayer" class="com.hehe.video.CDPlayer">
<constructor-arg ref="compactDisc"/>
</bean>
<bean id="compactDisc" class="com.hehe.soundsystem.BlankDisc">
<constructor-arg value="Sgt.Pepper`s Lonely Hearts Club Band"/>
<constructor-arg value="The Beatles"/>
</bean>
(二)Spring C-namespace
配置文件开头加:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns="http://www.springframework.org/schema/c"
........
>
<bean id="cdPlayer" class="com.hehe.video.CDPlayer" c:cd-ref="compactDisc"/>
</beans>
或者
<bean id="cdPlayer" class="com.hehe.video.CDPlayer" c:_0-ref="compactDisc"/>
util命名空间同样的用法
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
mutually 互相的,互助
bean 配置文件包括两种,一种是基于Java注解的配置文件,另一种是基于xml的配置文件。在实际应用中,Java注解的配置文件功能更强大,一般ssm都是基于Java注解配置框架。