框架学习 Spring之依赖注入DI

依赖注入的方式有四种:

1、Setter注入(属性注入)

2、构造器注入

3、P命名空间注入

4、集合类型值注入

1、Setter注入(属性注入)

Employee 员工实体类

package com.spring.pojo;

public class Employee {
    private Integer id;
    private String name;

    private Department department;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Department getDepartment() {
        return department;
    }

    public void setDepartment(Department department) {
        this.department = department;
    }

    @Override
    public String toString() {
        return "Employee [id=" + id + ", name=" + name + ", department=" + department + "]";
    }

    public Employee(Integer id, String name, Department department) {
        super();
        this.id = id;
        this.name = name;
        this.department = department;
    }

    public Employee() {
        super();
        // TODO Auto-generated constructor stub
    }

}

Department 部门实体类

package com.spring.pojo;

public class Department {
    private Integer id;
    private String name;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Department() {
        super();
        // TODO Auto-generated constructor stub
    }
    public Department(Integer id, String name) {
        super();
        this.id = id;
        this.name = name;
    }
    @Override
    public String toString() {
        return "Department [id=" + id + ", name=" + name + "]";
    }

}

主配置文件里面

2、构造器注入

3、P命名空间注入

添加命名空间

xmlns:p="http://www.springframework.org/schema/p"

使用P标签

4、集合类型注入

创建collection集合实体类

package com.spring.pojo;

import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

public class CollectionBean {
    private List<String> list;
    private Set<String> set;
    private Map<String, Object> map;
    private Properties properties;
    private String[] array;
    public CollectionBean() {
        super();
        // TODO Auto-generated constructor stub
    }
    public CollectionBean(List<String> list, Set<String> set, Map<String, Object> map, Properties properties,
            String[] array) {
        super();
        this.list = list;
        this.set = set;
        this.map = map;
        this.properties = properties;
        this.array = array;
    }
    public List<String> getList() {
        return list;
    }
    public void setList(List<String> list) {
        this.list = list;
    }
    public Set<String> getSet() {
        return set;
    }
    public void setSet(Set<String> set) {
        this.set = set;
    }
    public Map<String, Object> getMap() {
        return map;
    }
    public void setMap(Map<String, Object> map) {
        this.map = map;
    }
    public Properties getProperties() {
        return properties;
    }
    public void setProperties(Properties properties) {
        this.properties = properties;
    }
    public String[] getArray() {
        return array;
    }
    public void setArray(String[] array) {
        this.array = array;
    }

}

主配置文件中,依赖注入

 <bean id="collectionBean" class="com.spring.pojo.CollectionBean">
         <!--有序可重复  -->
         <property name="list">
         <list>
             <value>list1</value>
             <value>list2</value>
             <value>list3</value>
         </list>
             </property>

         <!--无序不可重复  -->
         <property name="set" >
             <set>
                 <value>set1</value>
                 <value>set2</value>
                 <value>set3</value>
             </set>
         </property>

         <property name="map">
             <map>
                 <entry key="key1" value="法海1"></entry>
                 <entry key="key2" value="法海2"></entry>
                 <entry key="key3" value="法海3"></entry>
             </map>
         </property>

         <property name="array">
             <array>
                 <value>String1</value>
                 <value>String2</value>
                 <value>String3</value>
             </array>

         </property>

         <!--properties是特殊的Map  -->
         <property name="properties">
             <props>
                 <prop key="prokey1">values1</prop>
                 <prop key="prokey2">values2</prop>
                 <prop key="prokey3">values3</prop>
             </props>
         </property>

     </bean>
     

原文地址:https://www.cnblogs.com/luojack/p/11141004.html

时间: 2024-10-09 09:10:10

框架学习 Spring之依赖注入DI的相关文章

java框架篇---spring IOC依赖注入

spring依赖注入的方式有4种 构造方法注入 属性注入 工厂注入 注解注入 下面通过一个实例统一讲解: User.java package com.bjsxt.model; public class User { private String username; private String password; public User(){} public User(String username, String password) { super(); this.username = use

spring的依赖注入DI(IOC)

1.手动注入 (1)set注入 public class UserService { private UserDao userDao; public void setUserDao(UserDao dao){ this.userDao = dao; } } <bean id="userDao1" class="com.spring1.dao.UserDao"></bean> <bean id="userService"

Spring框架3:spring的依赖注入

本系列笔记均是对b站教程https://www.bilibili.com/video/av47952931 的学习笔记,非本人原创 spring的依赖注入(DI) 什么是依赖注入: 作者:Angry Bugs 链接:https://www.zhihu.com/question/32108444/answer/581948457 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 看了几个高赞答案,感觉说得还是太啰嗦了.依赖注入听起来好像很复杂,但是实际上炒鸡简单,一

springMVC 学习(什么是依赖注入)

上一篇博文中,我们学习了springIOC,又称spring控制反转,即将对象的创建销毁等操作交给spring容器来处理,今天学习spring的依赖注入,那么什么是依赖注入,说的通俗一点,就是对属性赋值,也就是说我们利用spring来为我们的类中包含的属性来进行赋值,想想之前我们是通过这样的方式来编写代码的:接口  对象 = new 接口实现类();  再看看我们之前是怎么给属性赋值的 1.通过set方法 2.通过构造方法 今天我们来实现通过spring依赖注入来为类中的变量赋值.首先我新建一个

Spring.NET依赖注入框架学习--入门

Spring.NET依赖注入框架学习--入门 在学些Spring.net框架之前,有必要先脑补一点知识,比如什么是依赖注入?IOC又是什么?控制反转又是什么意思?它们与Spring.net又有什么关系 带着问题,我们一起来看看下面内容(适合刚刚学习或者对依赖注入还太懂的小神看---大神直接飘过) 对以上几个问题都滚瓜烂熟的直接跳下一篇 这里我找到一篇我认为比较好的博文   原地址:http://www.cnblogs.com/jhli/p/6019895.html ---感谢博主分享 1. Io

Spring.NET依赖注入框架学习--概述

Spring.NET依赖注入框架学习--Spring.NET简介 概述 Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序.它提供了很多方面的功能,比如依赖注入.面向方面编程(AOP).数据访问抽象及ASP.NET扩展等等.Spring.NET以Java版的Spring框架为基础,将Spring.Java的核心概念与思想移植到了.NET平台上. 企业级应用一般由多个物理层组成,每个物理层也经常划分为若干功能层.不同层次之间需要相互协作,例如,业务服务层一般需

Spring.NET依赖注入框架学习--简单对象注入

Spring.NET依赖注入框架学习--简单对象注入 在前面的俩篇中讲解了依赖注入的概念以及Spring.NET框架的核心模块介绍,今天就要看看怎么来使用Spring.NET实现一个简单的对象注入 常用文件 我们使用Spring.Net 框架经常要使用到的是以下文件: Common.Logging.dll  包含了Spring.Net日志方面的功能(必须) Spring.Core.dll       包含了Spring.Net 的核心库(必须) Spring.Data.dll       包含了

Spring.NET依赖注入框架学习--注入对象常见方法

Spring.NET依赖注入框架学习---实例化容器常用方法 本篇学习实例化Spring.NET容器的俩种方式 1.通过XmlObjectFactory创建一个Spring.NET容器 IResource input = new FileSystemResource ("objects.xml"); IObjectFactory factory = new XmlObjectFactory(input); 这样就可以通过factory的GetObject(“objectName”);获

AngularJS学习--- AngularJS中XHR(AJAX)和依赖注入(DI) step5

前言:本文接前一篇文章,主要介绍什么是XHR,AJAX,DI,angularjs中如何使用XHR和DI. 1.切换工具目录 git checkout -f step-5 #切换分支 npm start #启动项目 2.什么是XHR和依赖注入(Dependency Injection)? 1)什么是XHR? XHR是XMLHttpRequest的简称,XMLHttpRequest 用于在后台与服务器交换数据,主要是为了实现在不重新加载整个网页的情况下,对网页的某部分进行更新.简单说,浏览器中URL