在Nutz中使用Ioc-Annotation的入门教程
接触Nutz已经有很久了,从1.a.15就开始关注,至今也用Nutz做了几个项目,由于工作较忙,因此都没空写学习心得。惭愧的是一直没空去研究源码!!
?
今天心血来潮,测试了Ioc-Annotation,觉得挺方便的,由于Nutz提供了几种注入的配置方式(JS、XML、Annotation),因Nutz最开始是只支持JS配置,所以之前做的项目都是使用JS配置。但经常会忘了在JS配置文件加入注入的对象,经常获取到NULL值。
?
因在Spring-MVC中经常用注解,所以今天就抽空试了下Nutz的注解方式。还挺给力的!!!哈哈~~
?
好了,正奔主题!!
?
?
Nutz版本:1.b.38
数据库:MySQL
?
?
一、创建数据库
?CREATE TABLE `articleinfo` (
? `id` int(4) NOT NULL AUTO_INCREMENT,
? `title` varchar(50) DEFAULT NULL,
? `content` text,
? `addDate` datetime DEFAULT NULL,
? `addIp` varchar(50) DEFAULT NULL,
? PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
?
-- ----------------------------
-- Records of articleinfo
-- ----------------------------
INSERT INTO `articleinfo` VALUES ('1', '关于Nutz的Ioc-Annotation测试', '关于Nutz的Ioc-Annotation测试\r\n', '2011-07-23 21:42:43', '127.0.0.1');
INSERT INTO `articleinfo` VALUES ('2', 'Ioc-Annotation测试例子', 'Ioc-Annotation测试例子', '2011-07-23 21:44:16', '127.0.0.1');
INSERT INTO `articleinfo` VALUES ('3', '哈哈,成功了吧!', '哈哈,成功了吧!', '2011-07-23 21:44:40', '127.0.0.1');
?
?
二、例子使用的Jar包

?
三、结构图

?
?
?四、代码
1、首先配置Web.xml,配置Nutz的主模块。
?
?
2、创建主模块类MainModule.java
?1)由于主键是整型,因此此处是继承IdEntityService
2)此处最重要的是@IocBean(args = { "refer:dao" })这句话,等同于
@IocBean( name = "articleInfoService", args = { "refer:dao" })
使用@IocBean,若没有指定属性name的值,则默认为类名首字母小写。
?3)args = { "refer:dao" })指定构造函数所要注入的对象,由于ArticleInfoService要使用到dao对象,因此此处不要忘了带参数。
?
?
?
6、子模块 ArticleInfoAction.java
(哈哈,可能有些人看完Nutz手册,也没有看到以Action结尾的类名,个人习惯吧,因为之前用惯了SSH,觉得那样命名也挺好的,所以就搬过来了。按Nutz的推荐命名应该是ArticleInfoModule.java吧!你懂的啦!)
3 楼 细胞vs宇宙 2011-09-01 开始研究nutz。ioc这一块还是蛮复杂的。?
?
8、OK了,所有文件都配置好了,我们重启Tomcat,访问以下测试地址。
http://localhost:204/TestIocAnnotation/articleinfo/showArticleInfoList.shtml
?
效果图:
?
---------------------------------------------------
第一次在Javaeye上写学习心得,还蛮花时间的。以后有空再继续写了!!
不过,Nutz挺给力的!!!!!最后附上整个例子的源代码,希望对大家有帮助了!
?
?
@Inject private ArticleInfoService articleInfoService;