Spring学习笔记(一)
来源:互联网 发布:上海网络代运营公司 编辑:程序博客网 时间:2024/05/16 06:46
Spring学习笔记
Spring实战第三版第二章
- 声明Bean
- 构造器注入和setter注入
- 装配Bean
声明Bean
创建Spring配置
-Spring核心框架自带了10个命名空间配
1、aop:为声明切面及将@AspectJ注解的类代理为Spring切面提供配置元素
2、beans:支持声明Bean和装配Bean
3、context:为配置应用上下文提供了配置元素,如自动检测和自动装配Bean、注入非Spring直接管理的对象
4、jee
5、jms
6、lang
7、oxm
8、tx
9、util
声明一个简单的Bean
package com.springinaction.springidol; public class Juggle implements Performer{ private int beanBags=3; public Juggle(){ } public Juggle(int beanBags){ this.beanBags = beanBags; } public void perform(){ System.out.println("Juggle throws "+beanBags+"beanBags"); }}定义一个Juggle
杂技师类,实现了Performer表演者接口,perform方法输出抛出了几个豆子,可通过构造器设置豆子个数
请出第一位选手Duke表演,它被定义为一个Spring Bean
<bean id="duke" class="com.springinaction.springidol.Juggler" />
是Spring中最基本的配置单元,通过其创建一个对象。这里创建了一个由Spring容器管理的名字为dule的Bean。id 定义Bean的名字,也是其在容器中的应用。class属性定义了duke的实现类。
可以使用上下文加载Bean来给duke一个排练的机会
ApplicationContext ctx = new ClassPathXmlApplicationContext("com/springinaction/springidol/spring-idol.xml")Performer performer = (Performer)ctx.getBean("duke");performer.perform();
-通过构造器注入
为了让Duke成为可以抛15个豆子的杂技师,可由下面的xml声明
<bean id="duke" class="com.springinaction.springidol.Juggler"><constructor-arg value="15" /></bean>
-通过构造器注入对象引用
如果Duke还会朗诵诗歌,则需要一个新的Juggler类型
public class PoeticJuggler extends Juggler{ private Poem poem; public PoeticJuggler(Poem poem){ super(); this.poem = poem } public PoeticJuggle(int beanBags, Poem poem){ super(beanBags); this.poem = poem; } public void perforem() throws PerformanceException{ super.perform(); System.out.println("While reciting..."); poem.recite(); } }
这个新的Juggler不但可以可以玩杂技,还可以朗诵诗歌,因此还有一个诗歌接口
public interface Poem{ void recite();}
定义一个实现类来实现Poem接口
public Sonner implements Poem{ void recite(){ System.out.println("aaaaa");}}
使用下面的定义文件
<bean id="sonner" class = "com.springinaction.springidol.Sonner" />
需要将poem赋值给Duke,修改<bean>
shengming
<bean id="poeticJuggler" class="com.springinaction.springidol.PoeticJuggler"><constructor-arg value="15" /><constructor-arg ref="sonner" /> </bean>
0 0
- Spring学习笔记(一)
- Spring 学习笔记(一)
- spring学习笔记(一)
- Spring学习笔记(一)
- Spring学习笔记(一)
- spring学习笔记(一)
- Spring 学习笔记(一)
- spring学习笔记(一)
- Spring 学习笔记(一)
- Spring学习笔记(一)
- Spring学习笔记(一)
- spring学习笔记(一)
- Spring学习笔记(一)
- spring学习笔记(一)
- Spring学习笔记(一)
- Spring 学习笔记(一)
- Spring学习笔记(一)
- Spring 学习笔记(一)
- Java新特性详解
- 解决Can't connect to MySQL server on 'localhost' (10061)
- vc++2008没有inttypes.h头文件怎么办
- 蒙皮的网格渲染器
- Qt5 不编译MySQL驱动也一样可以使用
- Spring学习笔记(一)
- leetcode笔记:Best Time to Buy and Sell Stock III
- 「喵神成长史」『布局篇』TableLayout(表格布局)
- “家”计划:Android开发用HTTP进行文件共享
- 离职感言
- {Java The Good Parts}
- 地图的使用-King
- Yeoman官方教程:用Yeoman和AngularJS做Web应用
- 实例分析讲解为您敲开代码审计大门