HeroShane的gravatar头像
HeroShane 2014-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
最代码最近下载分享源代码列表最近下载
wanglinddad  LV54 2022年4月27日
死神的沉落  LV10 2020年11月9日
lhblion  LV9 2020年8月7日
王步庆  LV9 2020年5月14日
hwj5451620  LV2 2020年4月21日
花开两朵各表一枝  LV3 2019年5月20日
在线不是本人  LV12 2019年4月9日
夏目喵  LV6 2019年2月15日
dagf113225  LV68 2019年1月9日
胡878998  LV1 2018年12月24日
最代码最近浏览分享源代码列表最近浏览
wanglongfei2  LV2 2023年6月15日
1WQAQW1  LV2 2023年6月12日
17696925 2023年5月5日
暂无贡献等级
Lamber 2023年2月28日
暂无贡献等级
zzhua195  LV6 2023年1月29日
balabalawuyu  LV6 2022年11月24日
xueys123  LV13 2022年6月2日
wanglinddad  LV54 2022年4月27日
15730704482  LV3 2022年3月4日
931933787  LV2 2021年11月4日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友