java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3233|回复: 1

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

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

    [LV.Master]出神入化

    2040

    主题

    3698

    帖子

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    66476

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

    发表于 2015-10-30 20:46:28 | 显示全部楼层 |阅读模式
    如果你正在学习spring语言,并且是最新的spring4.x,那么我相信你应该知道这个名词“泛型依赖注入”,这就是spring4.0中的一个新特性(在spring语言的2.x和3.x中是的确不存在的概念),那么也许你想问到底什么是spring中的泛型依赖注入呢?
    3 T! i8 ^- B9 b- z2 C) K
    - b4 F) J/ }2 q  j5 E可以看我写得代码,相信你会从中找到感觉的。" Y$ O$ K; k. F  ?+ R& d8 Q6 |
    " {5 h6 X3 _" X3 y
    1、eclipse中建立一个java project工程就好了  Q$ R3 ~4 W5 M7 J1 e. c( I! R
    2、加入spring相关jar包
      }# A7 {' Q/ ? 微博桌面截图_20151030203818.jpg
    # b- r/ T" u7 y+ V- S
    3 K2 |$ i- A9 [( I+ j# `2 L8 K) |0 N3、src下建立spring配置文件,我这里叫作:beans-generic-di.xml
    ) j+ P4 K, L2 l<?xml version="1.0" encoding="UTF-8"?>7 m3 b+ {2 @7 T) ~+ w! r* j" l
    <beans xmlns="http://www.springframework.org/schema/beans"
    9 c( x' P4 F7 v7 h  D        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
    8 I/ @5 L9 l& R: T$ ~' E5 _: O        xmlns:context="http://www.springframework.org/schema/context"7 a3 y/ o! ^3 o# b
            xmlns:aop="http://www.springframework.org/schema/aop"6 Y. H) z/ y6 W8 T8 z
            xsi:schemaLocation="; t8 y: Q( ~6 P) z# u& t- j4 J) k
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd   
    5 |  {' _" J# `9 n5 |        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd  
    7 E8 P  N% V- C8 m1 A6 r" q1 [        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd  ) S  y2 t  e$ u4 r" ?( q
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">1 Z; ]' p0 z) B0 I
            <context:component-scan base-package="com.javazx.beans.generic.di"></context:component-scan>
    * v1 G6 ]+ q: E: F</beans>
    3 X# ]7 m7 x+ q, _) g) t& x' [/ I" F$ ~
    + |8 [5 x* F# B2 O1 W- k! Y
    4、建立BaseRespository类:0 |  r2 u' J5 c) R
    package com.javazx.beans.generic.di;
    7 O' I, z$ A" O9 l/ y; I/**
    ! l+ ?; k! E, O. i *+ m( T2 O/ R8 H) {
    * @author 作者 :javazx.com  t/ Z/ H- G! Y; S
    * @version 创建时间:2015年10月30日 下午8:05:03
    ! B; u' }* q: O$ { * @description 描述:
    / c. C+ Q9 m" w * 9 _, R& ^! j9 E/ R
    */, L, m) i# D5 X1 q$ e2 n7 h  ~0 G! e
    public class BaseRespository<T> {/ G: n/ y( w: O$ X4 W
    5 j4 U4 B; q; p4 l
    }
    7 @7 F, f- k1 ~* i( {8 W- ~+ X
    " `) C6 W" b% a' A
    ! j0 Y' b8 A9 Q( z+ @  T3 _5、建立BaseService类:
    + e/ D. [7 x6 _* f! p4 Wpackage com.javazx.beans.generic.di;! Q: Z9 `" l% x) y5 V
    : ?9 i0 R" g$ @0 m5 l
    import org.springframework.beans.factory.annotation.Autowired;
    - S/ G2 }* v% A, ^7 O3 _6 m3 G, _
    ' G9 j$ e0 i" d; g- s/**
    - F4 X4 S- ]" J * - K3 U7 S5 B+ e* q* s& a* X
    * @author 作者 :javazx.com
    0 _# Z: M. t% S7 Q: B, p# V * @version 创建时间:2015年10月30日 下午8:05:286 D# c+ V' [( `4 H3 O+ H3 H7 {9 W
    * @description 描述:泛型依赖注入  R9 e+ v' V, b
    * $ l& k6 J8 g/ N6 F0 h! b5 b' _
    */
    0 g& U1 M/ x  h% K8 ]- P, D+ \/ l2 B$ w
    public class BaseService<T> {) @1 |, d4 k% _" k8 X8 i3 Y
            @Autowired, O: a- x- a5 M/ q' s% F5 I1 W1 @: D
            private BaseRespository<T> baseRespository;
    ! I% n7 o/ e# C8 q! F  ?3 V5 a; c* e' _) t1 ~, V
            public void add() {. s% v+ s1 w  u. N3 n5 c
                    System.out.println("add...");( d( ~2 b) L" R% |0 x  v
                    System.out.println(baseRespository);9 r# S/ Q4 m1 Z1 r% L- `
            }8 I1 g- r8 L5 l; I9 G
    }
    ; ~5 {. U6 ]8 t  A+ i" X! N& g
    % n7 D2 C3 d( A$ h
    % @8 O+ `1 i2 g7 f, d6、建立UserRespository类:! ~3 a* n7 J0 K8 o: F
    package com.javazx.beans.generic.di;
    ! q) {1 t+ Q/ `$ f- A+ w7 {! ]) \# p3 [8 {& \9 v  J. D1 q
    import org.springframework.stereotype.Repository;/ R4 f9 k8 p% s$ ^
    ( L* P! s* M# l3 l
    /** & m4 k# R% G- p0 \. B
    *
    # E8 |, S& ^8 F' e& _5 u! t' C * @author 作者 :javazx.com4 r+ T# n7 p6 |9 h( o
    * @version 创建时间:2015年10月30日 下午8:15:37 % m/ [5 c' K# i
    * @description 描述:% t- k$ T* Z0 t1 t: \
    * ( @3 r: ?  a: r' S: w: y
    */4 v/ q0 r! a2 B
    @Repository
    % K- r6 a2 z9 v3 I! s5 ?4 s- xpublic class UserRespository extends BaseRespository<User> {7 V) R8 [$ D- N" s7 {
    8 q$ U* e7 Q9 g: d# i* y
    }* p& A! M$ U8 }4 K" q8 S  O0 F4 [4 H
    : F0 w" V3 I4 b( U* P
    ! v# ^3 @$ U5 t$ Y& `5 f
    7、建立UserService类:7 R7 @+ }5 C; O' r1 x, Q
    package com.javazx.beans.generic.di;
    6 I( m% ~# r- H1 }9 R- c" \. f9 F) N' h) K. Q5 d+ h
    import org.springframework.stereotype.Service;- H5 N$ p% }: U" _. k: y5 ?: {
    * ^) N5 H- a. f  @" n- A% ~
    /**
    3 `: a' y* _# `. ~ *& \; |( c- {/ V
    * @author 作者 :javazx.com
    7 i3 {9 ^0 ~! f+ l * @version 创建时间:2015年10月30日 下午8:12:04
    & Y. P- G9 e: A: B * @description 描述:
    ' ~/ w2 p0 ?7 {( m. }5 W * 0 o% \, M# Q0 c7 e
    */
    $ w7 _2 h5 \6 e7 k. u) i4 w2 }& @@Service
    3 _' d+ N5 }/ T* _! Mpublic class UserService extends BaseService<User>{
    + I/ J: y% l* c4 _/ L5 U7 b/ }" U6 k' e' \3 y1 q
    }
    2 ?% D3 m6 v$ }% Q2 v: R6 ^( H9 g) V9 _& G7 f& C* p  j( a! z/ }
      a7 G0 I0 z( l
    8、建立User 类:5 I) ~0 I( J( u1 ?' m# T
    package com.javazx.beans.generic.di;
    5 E6 N# S8 W/ `3 J) B, Q3 X7 e/** & V5 T6 `' g* z3 z3 q0 w
    *& S" o3 a. C# `. X( s
    * @author 作者 :javazx.com
    4 D: l5 b: H2 O3 N% P* P$ ~. W0 Q * @version 创建时间:2015年10月30日 下午8:12:11
    7 M+ B" z8 x" \4 }& E  F9 a * @description 描述:
    ! i% R$ m9 W1 r1 [8 M0 m *
    . n2 z6 X: @, y# G* ?  z */
    - H6 R/ k; L5 x% e+ G3 q, y) cpublic class User {) X0 M$ W( Z4 b  C- k2 X6 {5 N! u/ b

    ! V; X& T! }6 b$ f! r}4 ^' H# V5 w- z

    8 F' T) n5 V$ N1 S
    + S8 E# v) c* m# i+ c- P! f5 ^9、最后建立测试类:( d! J; H5 k; Q2 N
    package com.javazx.beans.generic.di;
    + }0 I1 W8 W8 ^/ v8 M) v2 @; ]! }& o1 `+ e
    import org.springframework.context.ApplicationContext;
    : q& D# e7 Z) M2 B/ ^  K& m2 p* V7 cimport org.springframework.context.support.ClassPathXmlApplicationContext;- G0 K0 _2 I. e# T9 J; e! s
    " A, C4 d  i, L5 e
    /**7 c2 g; _& i( P+ ^5 C
    * 8 ?9 A6 c4 J0 i. a
    * @author 作者 :javazx.com
    ! m1 X: d% b! L: r9 B  S * @version 创建时间:2015年10月30日 下午8:19:15; Z* I" o* I/ U- h( g
    * @description 描述:
    ; ?) M% [% m3 B4 A *
    / t, i1 p) {6 k# z7 H+ m */) z7 ^2 d$ x+ ~8 P
    public class Main {" P) u! t) g, f. D
    ( N; i! b8 _- g9 j
            private static ApplicationContext ac;
    1 u& M# ?# d9 F" ~6 {: X
    6 I" n+ W% ^1 D; Z% c+ k1 l        public static void main(String[] args) {( s0 ?8 Q% V4 d2 L
                    ac = new ClassPathXmlApplicationContext(
    * x. o& M! l; B3 T                                "beans-generic-di.xml");8 u: S* X5 |1 E1 J5 [9 o
                    UserService uc = (UserService) ac.getBean("userService");; A: T( ~) q6 _0 a5 \* @
                    uc.add();
    8 n8 g7 C2 M, b7 U# O, N. V        }
    9 M1 Z, K6 u, v+ M( l9 L( M  \% V' G. K4 ~8 j/ ^
    }. t5 {! d- }) Z- s7 C% p8 V3 C
    3 t5 J1 G$ r+ |9 e, H% p

    9 \2 m, f0 r5 ?% v; d10、运行main方法就可以了啊!相信你对spring泛型依赖注入应该有所了解了吧,如果还有哪些疑问,请直接回帖。& Y4 g; z3 T# v- }$ d" T7 a. G
    6 D' g- [6 t: w& e
    $ ~& J  s" \; S  |8 d
    4 |+ G' R6 N* n# {" ~( C

    4 i) B7 o8 |3 f$ @, \+ t2 ]1 |( U! `6 Q
    - m! n- p3 k7 J; X

    ' l' F$ N) B7 y; a& I
    回复

    使用道具 举报

  • 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, 2025-1-22 14:42 , Processed in 0.576790 second(s), 33 queries .

    Powered by Javazx

    Copyright © 2012-2022, Javazx Cloud.

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