随笔-37  评论-3271  文章-0  trackbacks-0

我的评论

共20页: First 上一页 3 4 5 6 7 8 9 10 11 下一页 Last 
期待中!
。。。要是整个过程都用Eclipse菜单项实现就好了,模仿MyEclipse反向工程向导。
Very good! Thanks!
re: JAVA音乐播放器YOYOPlayer1.1发布 BeanSoft 2007-12-30 11:45  
支持!就是美工。。。再好点就行了。你有这样的MM真幸福,呵呵!
re: CowNew开源团队2007年工作报告 BeanSoft 2007-12-28 12:13  
Good work man!
Very thanks!
re: 坏男孩MSN密码被盗公告 BeanSoft 2007-12-27 20:18  
我卡!
re: Struts2+spring2+hibernate3整合方案 BeanSoft 2007-12-26 13:57  
不要显示行号。。。晕
re: MYSQL-FRONT 3.2 注册码 BeanSoft 2007-12-26 09:18  
原作者怒了 出了个 HeidiSQL 开源版本,呵呵
啥都不说了,国人当自强!
感谢!
re: EasyJWeb-1.0 m3发布 BeanSoft 2007-12-20 09:25  
非常感谢!
re: WebSphere也有License BeanSoft 2007-12-19 19:28  
。。。。Synnex 的吧 呵呵 我们以前的同事
re: 开源的blazeds折射出adobe的野心 BeanSoft 2007-12-18 12:44  
还好 Flash 出来这么久 也没出现各大公司纷纷用 Flash 搭建企业应用的情况 我觉得原因最简单的就是: Flash 终归不能动态生成啊。
re: Sun发布开源PDF Renderer项目 BeanSoft 2007-12-17 13:23  
非常的不错!
re: JAVA版音乐播放器YOYOPlayer1.0 BeanSoft 2007-12-17 13:19  
不错!太厉害了!
re: Struts2 与 Struts1.x比较 [未登录] BeanSoft 2007-12-11 19:27  
感谢分享!
re: 联想杂碎了IBM BeanSoft 2007-12-09 12:06  
幸好 当时打算买一个价位1万的超薄型的时候 没听我同学的忽悠去买 IBM TP X60。。。最后我看中了 HP NC4400,轻易不死机,就是硬盘坏道了一次,呵呵。唉,自打看到原来出现联系TP系列飞线的报道后,就再也不相信了。而且国外卖的比国内便宜N倍!这就是所谓的国际化大企业联想!
支持!
收藏了!
都要钱的。。。不更新的项目没人用
re: Spring2.5的组件自动搜索 BeanSoft 2007-12-04 19:24  
姓名: 蔡超 生日: 1976-09-03 总结: 六年大企业软件开发经验(其中两年任软件架构师),精通J2EE相关技术及架构设计,是SUN及Microsoft培训中心特邀高端讲师 SUN认证的J2EE架构师(SCEA) SUN认证的商务组件开发员(SCBCD) IBM认证的RUP专家 IBM认证的OOA&D (UML v2)专家




对于annotation的支持和组件的配置方式是扩充是spring2.5的主要提升之一。其中组件在类路径下的自动搜索功能也是一项值得注意的新增特性。
现来看个示例:

图表 1 示例中涉及的类的关系
Command.java:
package org.ccsoft.commands.imp;

public interface Command {
public void execute();
}

CommandExecuter.java:
package org.ccsoft.commands.imp;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
@Component("commandExecuter")
public class CommandExecuter {
private Command command;
@Autowired

public void setCommand(/*@Qualifier("helloCommand")*/ Command command) {
this.command = command;
}
public void executeCommand(){
command.execute();
}
}

HelloCommand.java
package org.ccsoft.commands.imp;

import org.springframework.stereotype.Component;


@Component
public class HelloCommand implements Command{
public void execute() {
System.out.println("Hello World");
}
}

配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"" target="_new">http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"" target="_new">http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">

<context:component-scan base-package="org.ccsoft"/>
</beans>

测试程序如下:
package org.ccsoft;

import org.ccsoft.commands.imp.CommandExecuter;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import junit.framework.TestCase;

public class TestCommandExecuter extends TestCase {
public void testExecuteCommand(){
ApplicationContext ctx=new ClassPathXmlApplicationContext("application.xml");
CommandExecuter exe=(CommandExecuter) ctx.getBean("commandExecuter");
exe.executeCommand();
}
}
可以从配置文件中发现,这次并没有像常规的方式那样,声明所使用的bean,只是说明了组件搜索的基路径(便于减少搜索范围)“<context:component-scan base-package="org.ccsoft"/>”。
要点:
1 用@Component来声明每个组件,而不是通过配置文件中的bean元素
2 在需要注入其他组件的地方使用@Autowired,默认情况下会按类型进行依赖关系的查找和注入
3 可以指定组件的Id,通过@Component的值,如:@Component("commandExecuter"),这样类似于<bean id=” commandExecuter”…,注意如果不注明该值,spring将使用默认的命名规则,即类的名字但首字母小写,所以在上例中将@Component("commandExecuter")改写为@Component同样是可以运行的。

代码试验二:
在上面工程中加入新的Command接口实现类SorryCommand.
package org.ccsoft.commands.imp;

import org.springframework.stereotype.Component;
@Component
public class SorryCommand implements Command {

public void execute() {
// TODO Auto-generated method stub
System.out.println("Sorry");
}

}
再运行测试程序,会发现程序无法运行,抛出以下异常org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.ccsoft.commands.imp.Command] is defined: expected single matching bean but found 2: [helloCommand, sorryCommand]
这是因为根据类型的方式搜索,找到了两个相符的依赖类,这是我们必须指明使用那个组件。
@Autowired

public void setCommand(@Qualifier("helloCommand") Command command) {
this.command = command;
}
要点:
4 在多个同类组件存在于查找路径时必须通过@Qualifier指明

不知为什么,spring的这一新特性总让我联想起OSGi DS,不过与OSGi DS相比个人认为spring的IoC还是有些不便的地方,OSGi DS的Service的引用策略中的Cardinality可以指定组件的注入策略,可以支持将多个符合条件的组件多次注入,这为编写组件容器这样的应用提供了很大的便利。
如:

private List<Command> commands;

public void setCommand(Command cmd){
commands.add(cmd);
}

….

最后,这里只是涉及了spring2.5中相关内容中非常少的一点,如果大家有兴趣深入了解可以参考spring reference。
个人认为在大家充分享受新特性带来的便利的同时也要主要到新特性是否会对应用的可维护性和部署时改变注入关系的方便性带来负面影响。



蔡超
JavaEE 咨询顾问
SCEA
IBM Certified Solution Designer for OOA&D UML2




Tags: Spring OSGi

是呀... 呵呵 这么好的文章
re: Netbeans6.0正式版出来了 BeanSoft 2007-12-03 20:42  
呵呵 Netbeans 5.5 就支持 Java EE 5 了.
re: Netbeans6.0正式版出来了 BeanSoft 2007-12-03 19:55  
Sun 出品 品质保证 呵呵.... 以后又得做新视频了.
感谢分享!
re: 兔子的悲哀 BeanSoft 2007-11-29 12:58  
经典!顶! 谁画的啊!
re: 我的开发工具集(1)-CyberArticle BeanSoft 2007-11-29 12:10  
好是好 不免费啊... 我用 Code Library .NET
[置顶]CodeLibrary.NET 免费版(资料管理软件) http://www.blogjava.net/beansoft/archive/2006/11/22/82873.html
re: JAVA音乐播放器(Netbeans插件版) BeanSoft 2007-11-28 21:15  
牛啊!
re: JAVA写的MP3标签读写器 BeanSoft 2007-11-27 12:10  
真不错啊....都支持显示歌词了!!!
re: 开发Netbeans插件之音乐播放器 BeanSoft 2007-11-26 12:34  
真好, 呵呵!
系呀系呀 还是从首页去掉吧 要不被 Network Police 看到了就麻烦了 而且楼主 心如止水 一心向佛 出家人还是不要过问尘世的好啊.
re: dwr快速上手 BeanSoft 2007-11-22 21:34  
支持一下. 曾经在西安上大学.
re: Spring Framework 2.5 发布 BeanSoft 2007-11-20 18:16  
Java EE 5 引入的注解的确方便啊.
还有个更小的数据库 hsqldb 呵呵. 也不错. 小于1MB
re: Eclipse全屏插件更新(Beta2) BeanSoft 2007-11-16 12:52  
多谢!
... 我同学就在联想研究院... 哎 具体情况不是那么乐观 务虚的人比较多 虽然是想做点东西 不过第一个想法就是什么时候能卖掉挣钱 其中的 www.gongsipk.com 一期源码本人开发 呵呵
re: Eclipse全屏插件更新(Beta2) BeanSoft 2007-11-15 23:25  
果然好用! 多谢了! 能否给看一下 code 啊? beansoft@126.com

不过直觉告诉我这个肯定是和 Windows 的某 API 有关, 呵呵.
re: Netbeans6.0 RC1正式出来了 BeanSoft 2007-11-15 09:20  
感谢 Netbeans 对 Java EE 开发提供优质免费 IDE 所做的巨大贡献! BS 某些无所作为的 通用 IDE 平台!
re: Spring+JSF示例 BeanSoft 2007-11-14 13:17  
不错! 收藏了!
好快 我要 呵呵 beansoft@126.com 多谢分享!!!
是呀 Eclipse 是开源软件 可惜绝大部分插件都是不开源 让人伤心
遇到了同样的问题.... 测试一定要认真啊... 我郁闷 还有并不能真正全屏 任务栏还在...
共20页: First 上一页 3 4 5 6 7 8 9 10 11 下一页 Last