[原创]Struts2与Guice整合
上一篇 / 下一篇 2008-05-18 20:07:42 / 个人分类:Web Framework
2S~"R'v3o!y;{0Struts2与Guice整合需要Guice的插件guice-struts2-plugin-1.0.1.jar以及guice相关的jar包。下面是整个项目所需要的jar包海岸线网络聚合$\+KKv1B/Su
海岸线网络聚合,f X on(R.i8o)L/b

'f2C0n1s)K011.jpg
&ZQ+N5t)d(X0
8[?aN4R2s0海岸线网络聚合5vaMs?Y,Bu&M}:f
第一步,配置在web.xml中Struts2以及Guice的filter
/Ht DB#bY2C!mq~0
I"w8rh`-?"y"A0<filter>
7@5wvED
L)vg0<filter-name>guice</filter-name>
9[V2NUj[zv0海岸线网络聚合zU]9O`4s:Fx};d
海岸线网络聚合7T?!GM1sv*u)V#S5B
<filter-class>
海岸线网络聚合)U$DLLbu+IU
com.google.inject.servlet.GuiceFilter海岸线网络聚合7F$GR,`)g1y
海岸线网络聚合!afJ^l'B tm8p`+x
海岸线网络聚合@0z
i&P;LT:RO
</filter-class>
海岸线网络聚合N:c3TA!H4Z^f&l
</filter>
海岸线网络聚合 VA#Zv/B5j FD
海岸线网络聚合4z)E.v5fU*T
海岸线网络聚合k;AQO:\U QK;vo'f8y)f `~\0
;tK
w-VQ|l0<filter>
]:zL|&m9D(?#G"i0海岸线网络聚合,F:dGy,B F
海岸线网络聚合-CE^,qx W
F
<filter-name>struts</filter-name>
f1C qh?2t3`-?0海岸线网络聚合'X_#mq'bR
y"a{ZkC^0<filter-class>海岸线网络聚合vx#?9tCD'qCLh4U
海岸线网络聚合2a:k/U B^![
海岸线网络聚合&O6r"g,^{Tu'R:z
org.apache.struts2.dispatcher.FilterDispatcher海岸线网络聚合/zTI(\3Nt4uqGa
Q+T"w I6Y3f3u0O0t0海岸线网络聚合aD-k? vH!o{
%| @A/R
?"Qh0</filter-class>
} Q(N,V#Om\0</filter>海岸线网络聚合7S,j` |M@(N~o
海岸线网络聚合c%JVD$dIv
q]iSl pb[0 海岸线网络聚合Nkj f;d
海岸线网络聚合2?4qS? [M|J-@
海岸线网络聚合;^:L?hr+g
<filter-mapping>
f?7J-u!W6x'x8G0<filter-name>guice</filter-name>
/o{P H;L0海岸线网络聚合/Dh]z py] i3l
Q S+kf6g6w8V0<url-pattern>/*</url-pattern>海岸线网络聚合J3Sn"V-TAu-Cg7m;cj
6af:U;M&j[ t6m
a0</filter-mapping>
t;e;` TFY!I0
KK0|']6wuej0#g QC\6^d0
6U(o$MvLav-K0海岸线网络聚合 g5SV6Q3K a Kw+v
海岸线网络聚合GK#db#B'z-i kK M
<filter-mapping>海岸线网络聚合3mS*y Y!\2`QjA
5g!\3R/n!@k0海岸线网络聚合vDE!gF(MY
$r-?:?'p1I0<filter-name>struts</filter-name>
W"r8pP4DhaN0
\E&c"lG4S0
w~XfvA,o#LHY0<url-pattern>/*</url-pattern>
.`s!L5K?'O0海岸线网络聚合 Au%Gx/x
h*yH;UM*n(B-ro0</filter-mapping>海岸线网络聚合s1AZv4BN*~
mJ,Wp;z!Om"Q;h0海岸线网络聚合-@;qR V$Au8U `
海岸线网络聚合v&nc?7Q\$D
&bW k0K(W4])`0第二步,建立一个Service的接口:MyService海岸线网络聚合s,JF8S q\]0x
import com.google.inject.ImplementedBy;
#nCeH-h0[ |1b1?6j O2z0
u2rC6FC I0
import com.hopeteam.service.impl.MyServiceImpl;
5{,zWZ myu6D'H~![0A0v@+o9ZbeVq0
j z:~6EU f1G0
海岸线网络聚合J4ycm~'p{
MmfZ~ FZ m0海岸线网络聚合1Y*\+e ?Sh1\'l
/*海岸线网络聚合r'C)MM!z5mE
1N.kNy#Y?D0
_e\D j}}%k-v[0
海岸线网络聚合8[|OVt5t'`S.Wb
* 采用annotation进行接口与实现类之间的绑定海岸线网络聚合xC?"EM`
d` _3_9H*T0
?\i;{u)e Z G0
海岸线网络聚合hdo@0l8szA
* 接口与实现类之间绑定是必须的海岸线网络聚合.fR\E0]:[
&Q |P5o7LF0
i mqNB X Y1K `0
[,aI~KC#[o0*海岸线网络聚合
IDN ] ]1h,H%Y
&F8j^;M#No0*/海岸线网络聚合(xW#zJj-C%t
A-_(Y8q&}?0
T6}t} C6e0
海岸线网络聚合D4a V,y)ph
海岸线网络聚合"upLD J海岸线网络聚合:[ noO7}iLe
@ImplementedBy(MyServiceImpl.class)
LV;l9knB0 海岸线网络聚合k_{:d%TZ7nN Eh5}d pR t%v$Y[-dE0
public
Fxs(en&u0interface MyService {
海岸线网络聚合q;eO5c E_
D&s X2qbU0boolean valid(String username,String password);海岸线网络聚合ML0_2d;{'K9c#~
{ yJ,z j-\oU1S;J)H?0
8ad3nC/oK0
}
~c6V*k(K2J7H6C"b0 海岸线网络聚合rG5Pd kWKM7?r){#\!T)p1|0+a0V'ux:mUSj`+A0第三步,创建Service的实现类:MyServiceImpl
ci pH4zs$C0
import com.google.inject.Singleton;
9{Fosq,V?0 海岸线网络聚合 g*`~m0`'@&H海岸线网络聚合3e7K h9z-a}
import com.hopeteam.service.MyService;海岸线网络聚合x5b2^^`Pf e/X
海岸线网络聚合ZNU_1a Q@7g1OEzdYf0
海岸线网络聚合7W _2S(`d@E-D
8A{H"y H&Y(X'jK"n0海岸线网络聚合aq1s$?A!YJ+e6j
/*海岸线网络聚合~2R5Qx!hY1\T
wT5Rx5Sv0海岸线网络聚合g'~d6k5J5S8Kg2F
* 我们用@Singleton来标注它
-eJ)PVOo4G0Oy&FZ Dgg0
/v,U&@,ME8V0
2kB2C;r){h|0]jfxJ0*
海岸线网络聚合] f5V]!e
*/
};xO~_m-}8O0 海岸线网络聚合eDe.u Go海岸线网络聚合/Bm0AS b%kh
N%M/K^ ]0 海岸线网络聚合u;GBM*C#YQ
海岸线网络聚合%jq@.YY%oNt
@Singleton
[k;{S2_wcB7G0t!t;B$n[)e~x4u?be0
7pzA2a&?gR;\q A0
public海岸线网络聚合X#Yb(\bO-R dgn?lv
class MyServiceImpl implements MyService{海岸线网络聚合#m;x0gG1K9i4Sj%m
4b^3BA Ee6W0海岸线网络聚合]vN3n3jo{
海岸线网络聚合;Zd*p
Fy!P|}W*b,dd
public
.}*]VR{B-K7L0boolean valid(String username,String password)
海岸线网络聚合
J?Y8z.v;M3|[\
{海岸线网络聚合3_;Z+gIK }L
海岸线网络聚合tz3~,ooW
if(username.equals("fengzhizi")
-^4K8{B"DJ0
m.HPW`.b!{"c0
海岸线网络聚合\ dn+O`6e,AkY\
&& password.equals("123456"))