spring依赖注入之构造函数注入,set方法注入

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xsi:schemaLocation="http://www.springframework.org/schema/beans            http://www.springframework.org/schema/beans/spring-beans.xsd">    <!--spring中的依赖注入         依赖注入:               Dependency Injection         IOC的作用:               降低程序间的耦合(依赖关系)         依赖关系的管理:                以后都交给spring来维护          在当前类需要用到其他类的对象,有spring为我们提供,我们只需要在配置文件中说明          依赖关系的维护:               就称之为依赖注入。          依赖注入:              能注入的数据:有三类                   基本类型和String                   其他bean类型(在配置文件中或者注解配置过的bean)                   复杂类型/集合类型              注入的方式:有三种                    第一种:使用构造方法提供                    第二种:使用set方法提供                    第三种:使用注解提供()     -->    <!--构造函数注入:         使用变迁:constructor-arg         标签出现的位置:bean标签的内部         标签中的属性:              type:用于指定要注入的数据的数据结构,该数据类型也是构造函数中某个或某些参数的类型              index:用于指定要注入的数据给构造函数中指定索引位置的参数赋值。索引的位置是从0开始              name: 用于指定给构造函数中指定名称的参数赋值              ==========以上三个用于指定给构造函数中那个参数赋值=======              value: 用于提供基本类型和String类型的数据              ref: 用于指定其他的 bean类型数据。它指的就是在spring的Ioc核心容器出现过的bean对象

     优势:        在获取bean对象时,注入数据是必须的操作,否则对象无法创建成功。      弊端:        改变了bean对象的实例化方式,使我们在创建对象时,如果用不到这些数据,也必须提供数据。     -->    <bean id="accountService" class="zty.service.impl.AccountServiceImpl">        <constructor-arg name="name" value="张腾岳"></constructor-arg>        <constructor-arg name="age" value="18"></constructor-arg>        <constructor-arg name="birthday" ref="now"></constructor-arg>    </bean>

    <!-- 配置一个日期对象 -->    <bean id="now" class="java.util.Date"></bean>
<!-- set方法注入     涉及的标签:property     出现的位置:bean标签的内部     标签的属性          name: 用于指定注入时所调用的set方法名称。          value: 用于提供基本类型和String类型的数据          ref; 用于指定其他的bean类型数据。它指的就是在spring的Ioc核心容器出现过的bean对象

 优势:创建对象时没有明确的限制,可以直接使用默认的构造函数 弊端: 如果有某个成员必须有值,则set方法无法保证一定注入

  --><bean id="accountService1" class="zty.service.impl.AccountServiceImpl1">    <property name="name" value="test"></property>    <property name="age" value="52"></property>    <property name="birthday" ref="now"></property></bean>

</beans>

原文地址:https://www.cnblogs.com/ZTYCandy/p/10676174.html

时间: 2024-09-30 01:52:05

spring依赖注入之构造函数注入,set方法注入的相关文章

Spring 4.2 方法注入解决单例Bean的原型Bean依赖问题

当你在单例Bean中使用原型Bean依赖时,注意,依赖在实例化时解析.因此,如果你依赖注入一个原型Bean到单例Bean中,新的原型Bean被实例化然后依赖注入到单例Bean中.提供给单例Bean的原型实例是唯一的. 然而,假设你想单例Bean在运行时多次获取一个新的原型Bean的实例.你不能依赖注入一个原型Bean到你的单例Bean中,因为注入只发生一次,当Spring容器实例化单例Bean时解析并注入它的依赖.如果你在运行时多次需要一个新的原型Bean,可以使用方法注入. 在大多数应用程序情

Spring 依赖注入方式详解

阅读目录 1.Set注入 2.构造器注入 3.静态工厂的方法注入 4.实例工厂的方法注入 平常的Java开发中,程序员在某个类中需要依赖其它类的方法. 通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理. Spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过Spring容器帮我们new指定实例并且将实例注入到需要该对象的类中. 依赖注入的另一种说法是"控制反转".通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员.

2.Spring依赖注入(Dependency Injection)

依赖: 在A类中引用了B类,说明A依赖于B. 注入: 使用Spring框架给A类中的B对象的属性赋值. 直接上代码: 1.只使用IOC public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { retu

Spring依赖注入 DI(一)

DI:Dependency Injection(依赖注入) 從字面上分析: IOC:指將對象的創建權,反轉給了Spring容器: DI:指的是Spring創建對象的過程中,將對象依賴屬性(簡單值,集合,對象)通過配置設值給該對象. IOC和DI其實是同一個概念的不同角度描述,DI相對IOC而言,明確描述了“被注入對象依賴IOC容器配置依賴對象”. 所謂的依賴注入,就是屬性不創建對象,通過配置文件的配置將spring容器裡面的對象注入給對應的屬性 依賴注入有四種方式 1.setter注入,(属性注

Spring学习笔记--initmethod和构造函数、setter方法的加载顺序

今天学习了一下spring中bean的初始化和销毁,突然想了解一下初始化方法跟构造函数及setter方法注入的执行顺序,记录在此,仅作为学习笔记. 当实例化一个bean时,可能需要执行一些初始化操作来确保该bean处于可用状态.同样地,当不再需要bean时,将其从容器中移除是,我们可以还需要按顺序 执行一些清除工作. package com.zp.chapter2; public class Auditorium { private String name; public void doBefo

一起写框架-Ioc内核容器的实现-对象的调用-方法注入容器的对象(十一)

实现功能 就是在方法的上面加入@Autowired注解,容器中的对象会注入到对应类型的参数. 注意:暂时实现注入一个对象.所有方法的参数列表的参数只能有一个. 实现思路 其实实现的思路和给字段注入的逻辑是一样的.遍历类所有的方法有没有@Autowired,有的就给它赋予容器中对应的对象. 实现步骤 1. 在AbstractApplicationContext类增加两个方法区分属性注入(autowiredField)和方法注入(autowiredMethod) 1 /** 2 * 属性注入 3 *

SQL注入测试平台 SQLol -3.INSERT注入测试

访问首页的insert模块,http://127.0.0.1/sql/insert.php,开始对insert模块进行测试. insert语句: INSERT INTO [users] ([username], isadmin) VALUES (['1'], [0]) 接收的参数可能拼接到上述语句中[]的任一个位置. 在这里我们一般使用 1.报错注入 2.盲注(布尔类型.时间延迟类型) 有的注入点可以同时使用多种方法注入,这里只演示一种. 下面演示注入到不同位置的方法. 一.Value(stri

(spring-第3回)spring的依赖注入-属性、构造函数、工厂方法等的注入

Spring要把xml配置中bean的属性实例化为具体的bean,"依赖注入"是关卡.所谓的"依赖注入",就是把应用程序对bean的属性依赖都注入到spring容器中,由spring容器实例化bean然后交给程序员.spring的依赖注入有属性注入.构造函数注入.工厂方法注入等多种方式,下面用几个简单的栗子来一一道来. 一.首先是属性注入: 代码001 1 <?xml version="1.0" encoding="UTF-8&q

Spring依赖注入

Spring依赖注入基础 一.Spring简介 1.Spring简化Java开发 Spring Framework是一个应用框架,框架一般是半成品,我们在框架的基础上可以不用每个项目自己实现架构.基础设施和常用功能性组件,而是可以专注业务逻辑.因此学习Spring Framework在架构和模式方面的结构和原理,对我们在架构和模块级别的理解帮助极大.Spring Framework(参考1)的宗旨是简化Java开发,主要的手段如下: (1)在架构上解耦:通过DI(依赖注入)管理类型依赖,通过AO