国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Guice整合Struts2簡易教程

開發 后端
本文將詳細介紹如何用Guice進行DI和如何整合Struts2。Guice是Google推出的一款DI框架,運行時比較簡單。

1. Guice簡介
  

Guice是Google推出的一款DI框架,因其優秀榮獲了Jolt大獎。和Spring相比,要輕量很多。運行時只要指定一個配置類,實現其com.google.inject.Module接口,指定接口和實現類即可。
  

需要的基礎jar包有
  

Guice需要的jar包,如果是web應用,需要guice-servlet-2.0.jar,整合Struts2則需要guice-struts2-plugin-2.0.jar
  

aopalliance.jar
  

guice-2.0.jar
  

guice-servlet-2.0.jar
  

guice-struts2-plugin-2.0.jar
  

Struts2需要的jar包
  

commons-fileupload-1.2.1.jar
  

commons-io-1.3.2.jar
  

commons-logging-1.0.4.jar
  

freemarker-2.3.13.jar
  

ognl-2.6.11.jar
  

struts2-core-2.1.6.jar
  

xwork-2.1.2.jar

GuiceSpring的對比

 

Spring

Guice

使用XML

使用將類與類之間的關系隔離到xml中,由容器負責注入被調用的對象,因此叫做依賴注入

不使用xml,將類與類之間的關系隔離到Module中,聲名何處需要注入,由容器根據Module里的描述,注入被調用的對象。

使用Annotation

 

使用
支持自定義Annotation標注,對于相同的接口定義的對象引用,為它們標注上不同的自定義Annotation注釋,就可以達到同一個類里邊的同一個接口的引用,注射給不同的實現,在Module里用標注做區分,靈活性大大增加。
使用Annotation也未必是好事,范型等新特性也未必是好事,目前大多的服務器均不支持jdk1.5,wls9以前才支持,而目前的客戶由于價格原因也很少選用wls9的,至少我們做過的項目中都沒有。功能再強,客戶不需要,何用?

運行效率

裝載spring配置文件時,需解析xml,效率低,getBean效率也不高,不過使用環境不會涉及到getBean,只有生產環境的時候會用到getBean,在裝載spring應用程序的時候,已經完成全部的注射,所以這個低效率的問題不是問題。

使用Annotationcglib, 效率高與spring最明顯的一個區別,spring是在裝載spring配置文件的時候把該注入的地方都注入完,而Guice呢,則是在使用的時候去注射,運行效率和靈活性高。

類耦合度

耦合度低,強調類非侵入,以外部化的方式處理依賴關系,類里邊是很干凈的,在配置文件里做文章,對類的依賴性極低。

高,代碼級的標注,DI標記@inject侵入代碼中,耦合到了類層面上來,何止侵入,簡直侵略,代碼耦合了過多guice的東西,大大背離了依賴注入的初衷,對于代碼的可維護性,可讀性均不利

類編寫時

需要編寫xml,配置Bean,配置注入

只需聲明為@inject,等著被注入,
***在統一的Module里聲明注入方式

僅支持IOC

否,spring目前已經涉獵很多部分

是,目前僅僅是個DI容器

是否易于代碼重構

統一的xml配置入口,更改容易

配置工作是在Module里進行,和spring異曲同功

支持多種注入方式

構造器,setter方法

Field,構造器,setter方法

靈活性

 

1,如果同一個接口定義的引用需要注入不同的實現,就要編寫不同的Module,煩瑣

2,動態注入

如果你想注射的一個實現,你還未知呢,怎么辦呢,spring是沒辦法,事先在配置文件里寫死的,而Guice就可以做到,就是說我想注射的這個對象我還不知道注射給誰呢,是在運行時才能得到的的這個接口的實現,所以這就大大提高了依賴注射的靈活性,動態注射。

與現有框架集成度

1 高,眾多現有優秀的框架(如struts1.x等)均提供了spring的集成入口,而且spring已經不僅僅是依賴注入,包括眾多方面。
2
 Spring也提供了對Hibernate等的集成,可大大簡化開發難度。
3
 提供對于orm,rmi,webservice等等接口眾多,體系龐大。

1,可以與現有框架集成,不過僅僅依靠一個效率稍高的DI,就想取代spring的地位,有點難度。

配置復雜度

xml中定位類與類之間的關系,難度低

代碼級定位類與類之間的關系,難度稍高

2Helloworld
  

筆者寫了一個demo,對于簡單的應用Guice還是比Spring方便很多
└─com
└─greysh
└─guice
├─action
│ UserAction.java

├─config
│ ModuleConfig.java

├─model
│ User.java

└─service
│ UserService.java

└─impl
UserServiceImpl.java
  

代碼見附件
  

Guie加載的原理是先去調用自己實現Module接口的類,這個類類似Spring的applicationcontext.然后調用configure函數的binder進行綁定,相當于spring里面的ref綁定,然后綁定完后就在需要注入的放指定 @Inject 進行注入,主要有構造函數注入,方法注入,字段注入。一般而言用方法注入
  

本教程的User為實體類,僅僅有一個字段userName;  

public interface UserService {

  void invoke(User user);

  }

對于接口實現 

public void invoke(User user) {

  user.setUserName("Name : " + user.getUserName());

  

當然最重要的是action  

@Inject
private UserService userService;
@Inject
private User user;


本教程采用字段注入

由于不采用Struts2的自身的DI,因此要指定為guice

<CONSTANT value="utf8" name="struts.i18n.encoding" />
<CONSTANT value="com.greysh.guice.config.ModuleConfig" name="guice.module" />

您正在閱讀的是“Guice整合Struts2簡易教程

【編輯推薦】

  1. 在Eclipse中開發struts應用程序
  2. 手把手教你在Eclipse中配置開發Struts
  3. Eclipse下開發struts完整解決亂碼問題
責任編輯:張燕妮 來源: IT168
相關推薦

2009-06-25 15:11:28

Struts2教程Struts2程序

2009-07-17 17:45:56

iBATIS Spri

2009-02-04 10:51:07

2009-06-25 16:04:30

2009-06-25 15:26:25

Struts2教程struts.xml常

2009-02-04 15:04:13

2009-06-25 15:50:03

Struts2教程上傳任意多個文件

2009-06-25 15:54:42

Struts2教程攔截器

2009-02-04 11:37:15

2009-07-29 09:54:34

struts2和str

2009-02-04 14:00:59

2009-02-04 14:19:38

2009-06-25 15:37:12

Struts2教程Validation框

2009-06-25 15:33:12

Struts2教程使用validate驗證數據

2009-02-04 13:13:03

2009-06-04 08:53:57

struts2視頻教程

2009-02-04 12:00:08

2009-06-25 15:59:21

Struts2教程攔截器

2009-02-04 11:00:44

2009-07-03 09:35:57

Struts2 JSP
點贊
收藏

51CTO技術棧公眾號

欧美在线三级| 欧美在线观看视频一区二区| 欧美在线一级视频| 精品国产99久久久久久| 欧美国产一区在线| 亚洲高清视频一区二区| 狠狠色丁香婷婷综合影院| 亚洲人成绝费网站色www| 日韩电影免费| 日本一二三不卡| 最新视频 - x88av| 亚洲看片一区| 欧洲美女7788成人免费视频| 国内精彩免费自拍视频在线观看网址| 亚洲欧美另类图片小说| 国产系列第一页| 亚洲网站啪啪| 69av在线播放| 成人黄页网站视频| 精品国产一区二区三区四区四 | 国内精品久久久| 麻豆蜜桃在线观看| 欧美久久一区二区| 亚洲网站情趣视频| 国产精品乱码妇女bbbb| 国产最新免费视频| 国产ts人妖一区二区| 日韩av一级大片| 国产精品久久久亚洲一区| 成人免费视频97| 日韩中文首页| 国产福利精品在线| 免费福利视频一区| 久久久之久亚州精品露出| 白嫩亚洲一区二区三区| 亚洲欧美精品suv| 大胆人体一区| 亚洲欧洲中文天堂| 天天综合网天天| 日韩精品高清在线| 日韩精选视频| 久久精品中文字幕免费mv| 免费观看成人性生生活片| 亚洲色图偷窥自拍| 国产另类xxxxhd高清| 三级精品视频久久久久| 九七影院97影院理论片久久| 久久精品国产亚洲一区二区| 激情五月综合婷婷| 97视频在线观看免费高清完整版在线观看 | 7777精品伊人久久久大香线蕉经典版下载 | 欧美成人性生活| 日韩欧美激情电影| 欧美激情成人在线视频| 日韩高清电影免费| 91精品免费视频| 美女国产一区| 国产传媒久久久| 国产日韩视频一区二区三区| 男女男精品视频站| 一区二区三区影院| 成人jjav| 亚洲成人久久一区| 999在线精品| 亚洲自拍中文字幕| 久久一区精品| 亚洲人精品午夜射精日韩| 欧美激情一区二区三区四区| 写真片福利在线播放| 欧美日韩国产高清一区| 无码小电影在线观看网站免费| 久热精品在线视频| 日韩免费久久| 西游记1978| 国产女同性恋一区二区| 在线观看av中文| 亚洲精品国偷自产在线99热| 欧美日韩国产一区二区在线观看| 人人澡人人澡人人看欧美| 欧美视频日韩| 成人免费在线网| 亚洲综合一二三区| 国产精品一二三产区| 欧美黄色成人网| 亚洲激情网站| 国产内射老熟女aaaa| 一区二区三区中文免费| 精品精品导航| 午夜精品久久17c| 亚洲国产免费看| 欧美一区二区中文字幕| 精品动漫一区二区三区| 中文字幕在线看片| 国产乱肥老妇国产一区二 | 丝袜亚洲精品中文字幕一区| 精品乱子伦一区二区三区| 久久综合九色综合97婷婷女人| 一级毛片在线播放| 亚洲午夜国产成人av电影男同| 久久99国产精品视频| 免费观看国产视频在线| 黄色一区二区在线| 91精品网站在线观看| 高清av免费一区中文字幕| 国产精品三级av| 成人免费一区| 茄子视频成人在线观看| 欧美亚洲国产一区在线观看网站| 国产麻豆一区二区三区精品视频| 中文字幕欧美日韩一区二区| 欧美日韩成人一区| 一区视频在线| 色8久久影院午夜场| 国新精品乱码一区二区三区18 | 国产精品入口66mio| 草莓视频一区| 日韩一区有码在线| 免费福利视频一区| 男男视频在线观看网站| 日韩免费在线播放| 一区二区三区四区视频精品免费 | 精品国产乱码久久久久久久久 | 456国产精品| 高清国语自产在线观看| 99在线|亚洲一区二区| 写真福利精品福利在线观看| 国产精品久久久久影院色老大| 国产精品偷拍| 国产精品三区www17con| 一区二区三区不卡视频| 免费精品一区二区三区在线观看| 亚洲看片网站| 欧美亚洲尤物久久| 色婷婷色综合| 国产免费专区| 国语对白做受69| 成人久久18免费网站麻豆 | 亚洲精品无码久久久久久| 欧美一级专区免费大片| 无需播放器亚洲| 91福利免费在线| 欧美日韩xxxxx| 91麻豆福利精品推荐| 88xx成人免费观看视频库| 亚洲人成77777| 欧美一级免费大片| 国产欧美大片| 在线国产91| 久久伊人一区| 日韩欧美中文一区| 久久亚洲不卡| 成人福利影视| gogogo免费高清日本写真| 亚洲精品一线二线三线无人区| 国产一区二区三区久久久久久久久| 在线看片你懂得| 91日韩在线视频| 日韩超碰人人爽人人做人人添| 日韩一级大片在线| 飘雪影院手机免费高清版在线观看| 国产精品视频入口| 在线播放日韩av| 在线成人免费视频| 亚洲第一天堂av| 欧美视频一区二区在线观看| 99精品久久免费看蜜臀剧情介绍| 9色国产精品| 日韩美女一区二区三区在线观看| 日韩中文影院| 一区二区电影免费观看| 可以在线观看的黄色| 亚洲一区二区三区精品中文字幕| 成人污网站在线观看| julia一区二区中文久久94| 日韩精品视频在线| 亚洲成人1区2区| 久久久亚洲精品一区二区三区| 日韩av网站在线观看| 亚洲先锋成人| 成人免费直播| 国产成人永久免费视频| 日韩黄色影视| 91精品国产综合久久男男| 亚洲精品av在线播放| 美国欧美日韩国产在线播放| 美女毛片一区二区三区四区| 亚洲一区二区小说| 日韩精品一区二区在线| 97超碰色婷婷| 久久精品这里热有精品| 国产在线精品一区二区| 国产精品成人国产| 中文久久久久久| 国产精品久久久久久久久久99| 国产精品国色综合久久| 久久久精品动漫| 国产精品美女黄网| 精品欧美国产| 亚洲欧美在线网| 亚洲精品在线电影|