找回密码
 立即注册
首页 业界区 业界 spring6-多种类型的注入方式

spring6-多种类型的注入方式

倡粤 3 小时前
OCP原则

ocp指开闭原则,对扩展开放,对修改关闭。是七大原则中最基本的一个原则。
依赖倒置原则(DIP)

什么是依赖倒置原则

核心是面向接口编程、面向抽象编程, 不是面向具体编程。
依赖倒置原则的目的

降低耦合度,提高扩展力
什么是控制反转

控制反转:Ioc(Inversion of Controll),一种编程思想、设计模式。为了降低程序耦合度
反转有两点:

  • 不在程序中采用硬编码的方式new对象,把创建对象交给别人(UserService userService = new UserServiceImplForMysql())。
  • 不在程序中采用硬编码的方式维护对象关系。
spring框架

spring实现了Ioc,因此可以创建和维护对象见的关系。
控制反转实现方式主要有 依赖注入(Dependency Injection DI)
依赖注入的方式有以下方式:

  • Set注入(执行Set方法赋值)
  • 构造方法注入(执行构造方法赋值)
依赖注入中的“依赖”、“注入”的含义

依赖:A对象和B对象的关系
注入:是一种手段,通过这种手段让A和B产生关系。
依赖注入的实现方式有:set注入和构造方法注入。
set注入


  • 配置文件配置bean
  1.     <bean id="userDao" >
  2.     </bean>
  3.     <bean id="userService" >
  4.         
  5.         <property name="userDao" ref="userDao"/>
  6.     </bean>
复制代码

  • 在类中写set方法
  1. package com.ali.service;
  2. import com.ali.dao.UserDao;
  3. public class UserService {
  4.     private UserDao userDao;
  5.     // set注入需要提供一个set方法,方法名以set开头,spring容器调用这个set方法注入UserDao
  6.         public void setUserDao(UserDao userDao) {
  7.         this.userDao = userDao;
  8.     }
  9.     public void saveUser(){
  10.         userDao.insertUser();
  11.     }
  12. }
复制代码
这样即可注入成功。
注入外部bean
  1.     <bean id="orderDao"  />
  2.     <bean id="orderService" >
  3.         <property name="orderDao" ref="orderDao"/>
  4.     </bean>
复制代码
注入内部bean
  1.     <bean id="orderDao"  />
  2.     <bean id="orderService" >
  3.         <property name="orderDao" ref="orderDao"/>
  4.     </bean>         
复制代码
注入简单类型
  1. <bean id="userBean" >
  2.     <property name="name" value="张三"></property>
  3.     <property name="age" value="30"></property>
  4.     <property name="password" value="123456"></property>
  5.     </bean>
复制代码
实际开发中,一般不会吧Date类型当作简单类型,会使用ref来注入Date类型
级联属性赋值
  1.     <bean id="userDao" >
  2.     </bean>
  3.     <bean id="userService" >
  4.         
  5.         <property name="userDao" ref="userDao"/>
  6.     </bean><bean id="userBean" >
  7.     <property name="name" value="张三"></property>
  8.     <property name="age" value="30"></property>
  9.     <property name="password" value="123456"></property>
  10.     </bean>
复制代码
注入数组
  1.     <bean id="userDao" >
  2.     </bean>
  3.     <bean id="userService" >
  4.         
  5.         <property name="userDao" ref="userDao"/>
  6.     </bean>    <bean id="userDao" >
  7.     </bean>
  8.     <bean id="userService" >
  9.         
  10.         <property name="userDao" ref="userDao"/>
  11.     </bean>    <bean id="userDao" >
  12.     </bean>
  13.     <bean id="userService" >
  14.         
  15.         <property name="userDao" ref="userDao"/>
  16.     </bean>    <bean id="userDao" >
  17.     </bean>
  18.     <bean id="userService" >
  19.         
  20.         <property name="userDao" ref="userDao"/>
  21.     </bean>             吃<bean id="userBean" >
  22.     <property name="name" value="张三"></property>
  23.     <property name="age" value="30"></property>
  24.     <property name="password" value="123456"></property>
  25.     </bean>喝    <bean id="userDao" >
  26.     </bean>
  27.     <bean id="userService" >
  28.         
  29.         <property name="userDao" ref="userDao"/>
  30.     </bean>    <bean id="userDao" >
  31.     </bean>
  32.     <bean id="userService" >
  33.         
  34.         <property name="userDao" ref="userDao"/>
  35.     </bean>    <bean id="userDao" >
  36.     </bean>
  37.     <bean id="userService" >
  38.         
  39.         <property name="userDao" ref="userDao"/>
  40.     </bean><bean id="userBean" >
  41.     <property name="name" value="张三"></property>
  42.     <property name="age" value="30"></property>
  43.     <property name="password" value="123456"></property>
  44.     </bean>
复制代码
注入List和Set类型
  1.     <bean id="userDao" >
  2.     </bean>
  3.     <bean id="userService" >
  4.         
  5.         <property name="userDao" ref="userDao"/>
  6.     </bean>        张三<bean id="userBean" >
  7.     <property name="name" value="张三"></property>
  8.     <property name="age" value="30"></property>
  9.     <property name="password" value="123456"></property>
  10.     </bean>里斯<bean id="userBean" >
  11.     <property name="name" value="张三"></property>
  12.     <property name="age" value="30"></property>
  13.     <property name="password" value="123456"></property>
  14.     </bean>詹姆思    <bean id="userDao" >
  15.     </bean>
  16.     <bean id="userService" >
  17.         
  18.         <property name="userDao" ref="userDao"/>
  19.     </bean>    <bean id="orderDao"  />
  20.     <bean id="orderService" >
  21.         <property name="orderDao" ref="orderDao"/>
  22.     </bean>    北京<bean id="userBean" >
  23.     <property name="name" value="张三"></property>
  24.     <property name="age" value="30"></property>
  25.     <property name="password" value="123456"></property>
  26.     </bean>上海<bean id="userBean" >
  27.     <property name="name" value="张三"></property>
  28.     <property name="age" value="30"></property>
  29.     <property name="password" value="123456"></property>
  30.     </bean>广州    <bean id="orderDao"  />
  31.     <bean id="orderService" >
  32.         <property name="orderDao" ref="orderDao"/>
  33.     </bean>   
复制代码
注入Map集合
  1.     <bean id="userDao" >
  2.     </bean>
  3.     <bean id="userService" >
  4.         
  5.         <property name="userDao" ref="userDao"/>
  6.     </bean>    <bean id="userDao" >
  7.     </bean>
  8.     <bean id="userService" >
  9.         
  10.         <property name="userDao" ref="userDao"/>
  11.     </bean>         
复制代码
注入Properties类型
  1.     <bean id="userDao" >
  2.     </bean>
  3.     <bean id="userService" >
  4.         
  5.         <property name="userDao" ref="userDao"/>
  6.     </bean>    v1<bean id="userBean" >
  7.     <property name="name" value="张三"></property>
  8.     <property name="age" value="30"></property>
  9.     <property name="password" value="123456"></property>
  10.     </bean>v2<bean id="userBean" >
  11.     <property name="name" value="张三"></property>
  12.     <property name="age" value="30"></property>
  13.     <property name="password" value="123456"></property>
  14.     </bean>v3    <bean id="orderDao"  />
  15.     <bean id="orderService" >
  16.         <property name="orderDao" ref="orderDao"/>
  17.     </bean>
复制代码
注入null和空字符串
  1.     <bean id="userDao" >
  2.     </bean>
  3.     <bean id="userService" >
  4.         
  5.         <property name="userDao" ref="userDao"/>
  6.     </bean>    <bean id="userDao" >
  7.     </bean>
  8.     <bean id="userService" >
  9.         
  10.         <property name="userDao" ref="userDao"/>
  11.     </bean><bean id="userBean" >
  12.     <property name="name" value="张三"></property>
  13.     <property name="age" value="30"></property>
  14.     <property name="password" value="123456"></property>
  15.     </bean>
复制代码
注入特殊字符串
  1.     <bean id="userDao" >
  2.     </bean>
  3.     <bean id="userService" >
  4.         
  5.         <property name="userDao" ref="userDao"/>
  6.     </bean><bean id="userBean" >
  7.     <property name="name" value="张三"></property>
  8.     <property name="age" value="30"></property>
  9.     <property name="password" value="123456"></property>
  10.     </bean>
复制代码
构造注入


  • 配置文件配置bean
[code]

相关推荐

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