leign
Contact: Email: leign.du@gmail.com MSN: dujiali1987@msn.cn
C++博客
首页
新随笔
联系
聚合
管理
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
统计
随笔 - 12
文章 - 12
评论 - 8
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔档案
2009年11月 (3)
2009年10月 (9)
文章分类
C(2)
(rss)
C#(1)
(rss)
C++学习(5)
(rss)
DATABASE
(rss)
JAVA(5)
(rss)
文章档案
2009年11月 (4)
2009年10月 (1)
2009年8月 (1)
2009年6月 (6)
搜索
最新评论
1. re: Mysql汉字乱码问题(转)
在往后如数据库表中插入记录时应注意将sql处理
--非主流
2. re: JAVA获得指定URL网页内容
评论内容较长,点击标题查看
--90后非主流
3. re: 常用排序算法总结
但是这个算法总会结束,因为在每次的迭代www.zlss8.com
--90后非主流
4. re: 内连接与外连接的区别
外连接,返回到查询结果集合中的不仅包含符合连接条件的行
--90后非主流
5. re: JavaScript中字符与ASCII码间的转换
不要上当,这个是unicode编码,不是ascii编码
--null
阅读排行榜
1. 内连接与外连接的区别(1949)
2. JavaScript中字符与ASCII码间的转换(1690)
3. Mysql汉字乱码问题(转)(1125)
4. JAVA获得指定URL网页内容(762)
5. 有关JDBC连接池(600)
评论排行榜
1. 内连接与外连接的区别(4)
2. 常用排序算法总结(1)
3. Mysql汉字乱码问题(转)(1)
4. JavaScript中字符与ASCII码间的转换(1)
5. JAVA获得指定URL网页内容(1)
Spring学习笔记
解耦合、灵活性、可扩展性等这些都是我们所追寻的,Spring这个开源框架就是其中的一个产物。
为了解决企业应用开发的复杂性而创建,使用基本的JavaBean来完成以前只可能由EJB完成的事情。
目的:解决企业应用开发的复杂性
功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
范围:任何Java应用
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。
Spring给我印象最深的地方还是控制反转(或者说是依赖注入)和面向方面(AOP)这两个概念
下面是一个简单的控制反转的例子:
简单的接口
1
package
com.szy.spring.interfacebean;
2
3
public
interface
PersonBean
4
{
5
void
show();
6
}
实现接口
1
package
com.szy.spring.implbean;
2
import
com.szy.spring.interfacebean.PersonBean;
3
4
public
class
UserBean
implements
PersonBean
5
{
6
7
public
void
show()
8
{
9
System.out.println(
"
Hello Kuka
"
);
10
}
11
12
}
13
Spring配置文件
1
<?
xml version="1.0" encoding="UTF-8"
?>
2
<
beans
xmlns
="http://www.springframework.org/schema/beans"
3
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
4
xmlns:context
="http://www.springframework.org/schema/context"
5
xmlns:tx
="http://www.springframework.org/schema/tx"
6
xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
7
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
8
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
>
9
<
bean
id
=
"userBean"
class
=
"com.szy.spring.implbean.UserBean"
/>
10
</
beans
>
11
测试文件TestClass.java
1
package
com.szy.spring.test;
2
3
import
org.junit.Test;
4
import
org.springframework.context.ApplicationContext;
5
import
org.springframework.context.support.ClassPathXmlApplicationContext;
6
import
com.szy.spring.interfacebean.PersonBean;
7
8
9
public
class
TestClass
10
{
11
@Test
12
public
void
testMethod()
throws
Exception
13
{
14
//
读取配置文件
15
ApplicationContext ctx
=
new
ClassPathXmlApplicationContext(
"
applicationContext.xml
"
);
16
//
获取UserBean的实例
17
PersonBean bean
=
(PersonBean)ctx.getBean(
"
userBean
"
);
18
//
调用方法
19
bean.show();
20
}
21
}
22
通过容器来产生实例,再注入给需要实例的地方。
posted on 2009-11-05 17:08
leign
阅读(127)
评论(0)
编辑
收藏
引用
所属分类:
JAVA
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
Spring学习笔记
JUnit使用复习
Log4j使用总结-转
JDBC复习
HashMap与Hashtable的区别
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理