2015年9月

纵观各大语言及Web开发框架(先挖个坑),配置URL和Controller的方式有以下几种:

  1. XML配置
  2. 注解
  3. 代码

XML配置

来个Spring MVC的:

Go语言的Web框架Revel采用配置文件,但不是XML格式的,我觉得可以放在这里(代码来自Revel官方文档

# conf/routes
# This file defines all application routes (Higher priority routes first)
GET    /login                Application.Login       # A simple path
GET    /hotels/              Hotels.Index            # Matches with or without trailing slash
GET    /hotels/:id           Hotels.Show             # Extract an embedded argument
WS     /hotels/:id/feed      Hotels.Feed             # WebSockets.
POST   /hotels/:id/:action   Hotels.:action          # Automatically route some actions.
GET    /public/*filepath     Static.Serve("public")  # Assets served from /public/...
*      /:controller/:action  :controller.:action     # Catch all; Automatic URL generation

- 阅读剩余部分 -

在用Java开发的时候,往往会使用依赖注入框架,最常见的莫过于Spring或者Google Guice。

最常见的注入方式,一时XML配置文件(XML Configuration),二是注解(Annotation)。

然而,我非常抵触使用注解,只有不得不用的时候采用,比如@Override(当然Override也可以不写,当时我还是觉得写上可能更清晰些),或是其他一些消除警告的注解。

我不明白我抵触注解的原因是什么,我在写python的时候,经常使用装饰器(Decorator),类似于Java的注解,然而在写Java的时候,却不喜欢这样,这个也是令人困惑。

最近写代码的时候,我需要用依赖注入框架开管理我的Controller,Service,Dao,Model等对象。我使用了Spring,可是Spring太重了,我只是单单想使用它的DI功能,就需要好几个Jar包。如果你需要使用它来管理数据源的话,可能会引入更多的,如jdbc,tx,aop等。并且网上说这些组合起来非常方便,一套下来正好。我不喜欢这样。


2015-09-09更新
我最后还是放弃了XML配置的方式,也许只是目前放弃了XML配置的方式。
现在用Guice对项目进行了改造,原来用的是Spring,全部采用了注解的方式。