webman 后續(xù)迭代有考慮引入注解么?
我是近期有考慮這樣會(huì)不會(huì)簡(jiǎn)化一些代碼。去查了一下。目前得到的資料如下
1 如果需要引入注解在 8.0 以上的版本是可以不用引入額外的庫。Annotations 這個(gè)庫在 8.0 除了以后就進(jìn)入維護(hù)階段。
2 如果實(shí)現(xiàn)注解可以進(jìn)需要對(duì)框架本身的一些生命周期做一些調(diào)整就可以。主要的實(shí)現(xiàn)點(diǎn)就是拿到注解后,分析注解以及對(duì)后續(xù)代碼的調(diào)用進(jìn)行操作。對(duì)項(xiàng)目開發(fā)代碼影響其實(shí)并不大。但是可以帶來下面例如參數(shù)校驗(yàn)之類的好處。
還有一方面就是注解的使用對(duì)項(xiàng)目本身可能有影響的一些路線。就拿spring-boot 舉例。spring-boot 的入口函數(shù)和入口類上的注解是一些配置開啟和代碼掃描的目錄,配置是否開啟很好理解,是管控一些功能是否開啟,掃描代碼目錄的話就是影響的點(diǎn)就比較大了。這個(gè)在php(解釋型語言和可以自定義載入規(guī)則)這種語言下實(shí)現(xiàn)也是很簡(jiǎn)單的。主要就是掃描指定目錄,然后加在這些目錄下的class。通過class中的注解去進(jìn)行服務(wù)的注冊(cè)。 如果在php中實(shí)現(xiàn)代碼的話,至于是否有必要掃描,這個(gè)并不是必要的,可以在具體執(zhí)行的時(shí)候在去分析對(duì)應(yīng)的類然后通過解析注解獲取配置,進(jìn)行一些實(shí)例化。
至于代碼提示方面是沒有影響的。
因?yàn)槲易罱彩褂胘ava-spring 開發(fā)了一段時(shí)間(工作所迫)。所以也總結(jié)了一下幾個(gè)在我看來比較不錯(cuò)的點(diǎn)。
1 直接讀取配置變量賦值到對(duì)應(yīng)屬性
2參數(shù)校驗(yàn)
3攔截器
方法上面的鎖
4 直接注入屬性
webman一直想加入注解
第一步是要有一個(gè)通用的注解規(guī)范,與其它框架注解相同或者出入不大,不知道是否有這樣的規(guī)范。
有了規(guī)范就好開發(fā)了
spring 上我的理解是在aop的基礎(chǔ)上的注解。寫一個(gè)注解class ,控制注解中的參數(shù)。再寫一個(gè)切片函數(shù)。切片函數(shù)可以控制這個(gè)注解再那個(gè)位置生效。
并且我認(rèn)為注解的使用方區(qū)別是不大,主要是實(shí)現(xiàn)方式上可能都有所區(qū)別。難點(diǎn)主要在核心是否可以提供一個(gè)較好管理的注解運(yùn)行方式