最代码广告位
HeroShane的gravatar头像
HeroShane2014-04-08 01:31:05

一个java开源小博客框架blog4j,基于注解、反射实现的小框架

这个小项目功能、实现都不算复杂,没有用到J2EE主流框架,而是通过注解、反射来实现的简单的IOC、DB、LOG、WEB等功能。个人感觉,总体设计来讲一般,对于这个小博客是够用的,过于针对性导致很难扩展下去。而且作者貌似没有对这个项目持续更新下去,感觉挺可惜的。但是,作为小白白来讲,还是具有学习价值的。也想通过分享,把学到的一些东西做个小小的整理。

注1:第一个项目是使用xml配置,第二个是注解

注2:原项目可能作者比较重视xml配置的实现(IOC、REST风格等等),但是注解的实现就有问题,如一个bean对应多个url的时候、依赖注入的时候。对此我对第二项目做了小小的修改,如依赖注入,但是主要是硬编码,这也主要测试一下,没有更多的考虑。有兴趣的朋友请自行实现大刀阔虎的改革....

注3:原项目考虑云平台的部署,具体没测试,具体参考第一个项目。

注4:原项目将blog和框架分开,这里把它们合并在一起,一是因为代码不多,二是因为方便调试。

工程结构截图:

一个java开源小博客框架blog4j,基于注解、反射实现的小框架

项目运行:

项目一(基于xml):

前台:http://localhost:9090/blog4j/

后台:http://localhost:9090/blog4j/admin(这个界面超挫滴,虽然我不是颜控,但是。。鄙视。。为什么我不修改呢。。更鄙视)

用户名:admin    密码:admin

项目二(基于注解):将端口变成9091、项目名后加个2

项目剪影:

1、前台

一个java开源小博客框架blog4j,基于注解、反射实现的小框架

2、文章添加页面

一个java开源小博客框架blog4j,基于注解、反射实现的小框架

3、页面添加

一个java开源小博客框架blog4j,基于注解、反射实现的小框架

一个java开源小博客框架blog4j,基于注解、反射实现的小框架

一个java开源小博客框架blog4j,基于注解、反射实现的小框架

4、文章列表

一个java开源小博客框架blog4j,基于注解、反射实现的小框架

5、标签列表

一个java开源小博客框架blog4j,基于注解、反射实现的小框架

实现细节:

1、项目已启动就通过这个监听器获取要扫描的包、或者xml文件,将bean的详细信息:id、scope等信息放到一个Map集合中,接着再将这个Map集合存储到另一个key值为default_context的Map集合中,便于接下来的Handler的获取。但此时的bean还没有被实例化的。

一个java开源小博客框架blog4j,基于注解、反射实现的小框架

xml文件配置bean(更具体请看doc目录下文件)

一个java开源小博客框架blog4j,基于注解、反射实现的小框架

注解方式配置bean(更具体请看doc目录下文件)

一个java开源小博客框架blog4j,基于注解、反射实现的小框架

2、在过滤器的init方法加载了Mapping(映射)信息

xml中的配置

一个java开源小博客框架blog4j,基于注解、反射实现的小框架

 

3、这个过滤器实现了这个系统几乎的关键功能

A、根据request获取处理类(根据uri来进行匹配的,还有获取PathVariable,详细请参考:WebApplication#lookpup)

B、知道处理类,那么应该调用什么方法呢?现在的Controller类就只有post、get方法,通过request来确定调用哪个方法

C、知道处理类、方法,接着就要使用invoke了,之后就render相关页面。

 


最代码官方编辑于2016-3-23 9:44:56


打赏

文件名:blog4j.zip,文件大小:12450.177K下载
  • /
      • /blog4j
        • /blog4j/pro01.zip
        • /blog4j/pro02.zip
最代码最近下载分享源代码列表最近下载
花开两朵各表一枝 LV32019年5月20日
星星星星星星
在线不是本人 LV122019年4月9日
月亮月亮月亮
夏目喵 LV62019年2月15日
月亮星星星星
dagf113225 LV682019年1月9日
皇冠月亮
胡878998 LV12018年12月24日
星星
syandyy LV12018年4月25日
星星
geronk LV42018年4月17日
月亮
wayne1234 LV42018年4月15日
月亮
yangzheng114735 LV92018年3月24日
月亮月亮星星
r00tsec LV12018年1月12日
星星
最代码最近浏览分享源代码列表最近浏览
big123 LV13月12日
星星
18337281853 LV83月12日
月亮月亮
chenfengkk LV13月5日
星星
果云窝2月25日
暂无贡献等级
feng正经 LV32月20日
星星星星星星
xuke123 LV22月18日
星星星星
Jason66 LV22月11日
星星星星
是大震呀i LV21月27日
星星星星
xiaoxiaohu666 LV31月16日
星星星星星星
38735466 LV21月9日
星星星星
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友