java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3157|回复: 1

【spring技术】什么是泛型依赖注入?

[复制链接]
  • TA的每日心情
    开心
    2021-5-25 00:00
  • 签到天数: 1917 天

    [LV.Master]出神入化

    2025

    主题

    3683

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66345

    宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2015-10-30 20:46:28 | 显示全部楼层 |阅读模式
    如果你正在学习spring语言,并且是最新的spring4.x,那么我相信你应该知道这个名词“泛型依赖注入”,这就是spring4.0中的一个新特性(在spring语言的2.x和3.x中是的确不存在的概念),那么也许你想问到底什么是spring中的泛型依赖注入呢?+ s5 K; H" ?, i( a. k8 R$ \

    - Q4 K: z$ m7 ~' _, I可以看我写得代码,相信你会从中找到感觉的。3 D& M% c6 s) \! \, W

    2 b2 b$ M* r: j3 h, H( ~" x" y1、eclipse中建立一个java project工程就好了6 j+ p; V2 F' k  M
    2、加入spring相关jar包
    / @1 B, S  M3 J/ }  q! U, o 微博桌面截图_20151030203818.jpg
    + R) |: w5 {) y
    % U6 w4 u3 B- P3、src下建立spring配置文件,我这里叫作:beans-generic-di.xml
    % t' y( |& v% {: d7 T; c$ `<?xml version="1.0" encoding="UTF-8"?>
    / P- W2 H+ e: c/ B1 u) Q6 P/ W. O& Y<beans xmlns="http://www.springframework.org/schema/beans"
    " X- s  j0 e! A( q! j* [        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx") I4 B( ~4 e( x$ i$ B) l  h# K6 s' m
            xmlns:context="http://www.springframework.org/schema/context"
    1 D" l' l6 V3 O        xmlns:aop="http://www.springframework.org/schema/aop"  b* G: [# v: L% }9 \0 d/ @
            xsi:schemaLocation="
    ' b5 H; s! }. C5 V: j/ x& V        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd   2 M0 `# @) h8 W0 A
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd  
    1 _2 T' @& I& q( i- X        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd  
    / H: N$ Y4 S6 i8 x        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
    : \; k6 ^( e7 D        <context:component-scan base-package="com.javazx.beans.generic.di"></context:component-scan>
    ( m4 D7 G6 Z$ R$ A</beans>
    2 Y9 w: k* h# ^1 y6 G. x4 J$ c+ j% R( B) E2 j

    ) n0 Z( ?. w% l. K$ ]4、建立BaseRespository类:8 W8 \- \" E  h
    package com.javazx.beans.generic.di;3 N1 D+ ?% h! D$ l( V& |& z) E
    /**
    4 f8 a) V/ U/ Z4 W; a$ i *
    . Z, m/ j  ]3 ^6 r( i * @author 作者 :javazx.com, i$ d/ N) ?, k5 ^& m
    * @version 创建时间:2015年10月30日 下午8:05:03 . H/ T% E' I( ?
    * @description 描述:5 z, G6 I* q* u% h
    *
    6 E5 ?' N( }3 n3 i, u */
    1 N6 A, i4 x) C& b$ k) R  D. A" }public class BaseRespository<T> {
    . ?0 Y  g& Y  M: i- a) [, ]9 T% K
    ( J" \- l4 b/ b7 p8 J4 _4 y}
    & p6 Q+ e2 [0 t2 D) O3 [
    $ g( P9 Q5 d" Z, T6 d8 P! Z7 Q/ p
    % ^# h9 ~+ S' K: q5、建立BaseService类:
    - e& N' [; p( F" Epackage com.javazx.beans.generic.di;
    " n3 ~" R$ z* a$ d, Q& u. r/ i- z% V: V# _0 x  U# v
    import org.springframework.beans.factory.annotation.Autowired;
    # q7 P0 K/ H. O9 g9 }
    4 ?0 z& g/ N. _5 F" E/**
    7 v! |' y" v, q: l * & b: `# ]  X1 g6 h, |
    * @author 作者 :javazx.com
    8 ]% ^" C' G% { * @version 创建时间:2015年10月30日 下午8:05:28
    0 K* a* d; H. e, B * @description 描述:泛型依赖注入7 D  U( A9 @: n1 W2 g& d
    *
    1 N: P3 _% I+ D+ A' Z2 t4 H# h2 k */  |* D2 a+ h" ?: i* X4 f
    2 C- O) _. y+ I
    public class BaseService<T> {8 X+ Z: x& W4 O4 O5 ~, [* g
            @Autowired9 N* U1 X; e( v0 O
            private BaseRespository<T> baseRespository;
      h, }7 H% e: ?2 G
    , }- `) _& t: A& t        public void add() {
    4 Q1 M+ L- n+ W& ?# N                System.out.println("add...");
    ( _3 g7 y5 F- I0 L+ f$ `                System.out.println(baseRespository);# S0 V7 Y+ a, M6 K1 }+ D' n
            }
    ' ^  b8 u. o/ ^, h! R0 _( ]}" v6 F0 J% m# h& U4 ~
    7 X7 L) a0 A' q" [5 B( t
    ! ~- C) X1 f8 ^5 K) z
    6、建立UserRespository类:2 Y( W9 o" C( ?! `; g  r* i
    package com.javazx.beans.generic.di;
    6 o+ x& X6 [2 P3 F2 u  \. H0 J5 I* t! |
    import org.springframework.stereotype.Repository;
    4 `2 p$ |$ g5 @- Z  `, Y8 |
    . {+ R' J  _5 a+ r7 K4 {/** 2 Y/ l3 T1 @% V0 v# i
    *
    5 }5 _" B7 I9 A4 Z& s% ? * @author 作者 :javazx.com
    + D  W) C2 p/ b) E * @version 创建时间:2015年10月30日 下午8:15:37
    , ?5 y/ j. k) S4 f2 ^' |/ ]$ x3 w * @description 描述:9 ^0 @; _; O; C- c* G3 F" T
    * . K( t1 R. ]; J4 ^* {3 _9 M
    */# v0 ?; |' J+ K  P) |/ ?5 g
    @Repository
    ! V- k9 r* k+ f$ c2 }) fpublic class UserRespository extends BaseRespository<User> {
    + A1 M& U- H/ u  L- Y* P. m, L3 v) M& \' \+ J
    }
    - e& u5 I8 O6 x4 y/ R+ \" z9 W  I" f
    3 f5 B: j$ p) r% X  |
    7、建立UserService类:/ n: n2 ~% [) B( J+ ?+ d3 J0 M" u
    package com.javazx.beans.generic.di;5 E. C$ u. V+ ]  q" ?& C
    7 G' w+ B1 D; E& @, P
    import org.springframework.stereotype.Service;
    + S, W) C0 K) o5 q2 z
    ) T9 |1 F% y5 f0 r! M/** 9 M% ~. w5 v7 |8 w* d1 r* }0 H3 K
    *
    ( R2 E) U8 b; p, g( I * @author 作者 :javazx.com# X$ H  ?( E5 z5 ~
    * @version 创建时间:2015年10月30日 下午8:12:04
    , i  T6 i+ W# G0 W- e" x * @description 描述:
    # ^0 J3 i3 o7 s! _4 x5 r * - o$ b' R+ s( v" j. \& B' U+ r. k4 ~
    */
    3 }4 i7 w- g8 X5 J+ m@Service# w& {2 Q# T1 D* p' A! v# u
    public class UserService extends BaseService<User>{8 }& o% `" {1 Z# l+ F

    7 _( w3 q9 v1 [  G: ~}: h9 E9 o. v( e$ S0 `
    9 k. ~0 E5 x( j' [& t1 }! n9 B, L

    , w- Q0 u4 ?( p- ?3 W. C8、建立User 类:
    * k- |9 H5 s0 ^. A& |  bpackage com.javazx.beans.generic.di;$ ?& q# }6 v  C4 V. _; {; w! j! j
    /** " A0 o3 I3 y, ~* w
    *$ A; o7 \( |' h. J1 [( r( X! m
    * @author 作者 :javazx.com
    3 F0 B% g* ^6 h" [' @ * @version 创建时间:2015年10月30日 下午8:12:11
    2 C$ ^& h! ^6 {" ?/ y- p7 c5 |% h * @description 描述:7 Z6 l6 c8 E( B9 D8 o) z' ~0 K% c
    * " i# K0 m8 f) `) O+ i
    */
    ) O! f- d; D; u4 `; R0 `$ f& P0 L, epublic class User {
    3 q' ~% ?* h3 z; |+ T2 J: A. Q: G' B
    }  z8 ~: _7 W; ]. K. j6 F
    , g! T' x0 q+ [1 m: f

    ) @* R0 Z  R% ^/ K  {9、最后建立测试类:
    ! F/ H& V. A) epackage com.javazx.beans.generic.di;
    . |6 }6 p2 P" ^. n
    : @3 ~) p  j& g' ?. h# Z5 U, U0 uimport org.springframework.context.ApplicationContext;
    - x  ?: X, ?5 r7 ^* h' Himport org.springframework.context.support.ClassPathXmlApplicationContext;
    . v2 w5 B) e& p7 P
    + Y! H- L( I0 C& u' T4 s/*** E& k$ E& N0 X( s0 a
    * % ?5 P+ ]) [' R5 ^# z
    * @author 作者 :javazx.com6 t4 T$ t( E9 n8 ]$ o
    * @version 创建时间:2015年10月30日 下午8:19:15
    5 U; k; I; U* C7 u, N- D. R$ y * @description 描述:/ o/ V( A9 b% b5 {+ }' I! V% f! V
    *
    / \- @; F+ S5 _% p5 u! T */
    ! p, I% {( X$ t2 x; d! y, T  ?public class Main {) K$ A* `1 r, x& P6 {9 P' Y
    ! F, p2 G8 A# b. a4 Z+ Z. y3 p
            private static ApplicationContext ac;
    6 F! f  Y+ o% A4 T# w: S* B$ _' E
            public static void main(String[] args) {2 L& o$ c/ Q- u: s3 a) w
                    ac = new ClassPathXmlApplicationContext(
    ' ^3 J8 @0 N" S: a/ f$ S7 Y% j                                "beans-generic-di.xml");# ]7 u/ N2 d& Z* {: z
                    UserService uc = (UserService) ac.getBean("userService");, D& ?- R' Q- [% l6 M2 a$ x
                    uc.add();3 u  U/ ^/ Z. s
            }
    " a/ ~3 s9 x9 ?; ~. ^
    7 \8 L# q/ t7 C! v/ e}  r7 {/ r: F3 j

    + l/ Q1 O2 ^( S1 i8 |) M# i8 _* z, W# R: e
    10、运行main方法就可以了啊!相信你对spring泛型依赖注入应该有所了解了吧,如果还有哪些疑问,请直接回帖。
    4 Y  a; b+ l) ?% C. F+ d
    ! H7 y4 F# s5 w$ P/ Z9 }7 Q, k" E  w# z

    1 A+ Q) D0 Z3 ~! G$ b  x% O1 v, [: x* O4 f* D; ?

    / t. L" K1 Y5 @& ]% S/ ?" F+ u. {

    + {* W. z$ l5 e
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-20 16:20
  • 签到天数: 1 天

    [LV.1]初学乍练

    0

    主题

    27

    帖子

    63

    积分

    普通会员

    Rank: 2

    积分
    63
    发表于 2016-11-20 16:41:50 | 显示全部楼层
    不错好资源 可以用
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Java自学网

    GMT+8, 2024-11-21 21:01 , Processed in 0.112228 second(s), 36 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

    快速回复 返回顶部 返回列表