<!--创建bean的第一种方式:使用默认无参构造函数 在默认情况下:
它会根据默认无参构造函数来创建类对象。如果 bean 中没有默认无参构造函数,将会创建失败-->
<bean id="service" class="service.Impl.ServiceImpl" scope="prototype"></bean>
<!--第二种方式,使用普通工厂中的方法创建对象(使用某个类中的方法创建对象并且使用容器)-->
<bean id="factory" class="factory.InstanceFactory"></bean>
<bean id="factoryService" factory-bean="factory" factory-method="getService"></bean>
<!--第三种方法,使用工厂中的静态方法创建对象(使用某个类中的静态方法创建对象,并存入Spring容器)-->
<bean id="staticFactory" class="factory.StaticInstance" factory-method="getService"></bean>

spring依赖注入的三种方式

  1.使用构造函数提供(使用较少)

<?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">
<!--注入的方式:
1.使用构造函数提供
2.使用set方法提供(使用较多)
3.使用注解提供-->
<!--======================== 1.使用构造函数提供(使用较少)=============================-->
<bean id="service" class="service.Impl.ServiceImpl">
<!--constructor-arg 里面的属性
type:用于要注入的数据的类型,该类型也是构造函数中某个或者某个的参数类型
index:用于要注入的数据给构造函数中指定索引位置色参数赋值,索引的位置是从0开始
name: 用于指定给构造函数中指定名称的参数复制(建议使用)
=============以上三个用于指定给哪个参数复制=================
value:用于提供基本数据类型和string的数据
ref:用于指定其他bean类型数据.它指的是在spring的ioc核心容器中出现过的bean对象 注意!因为是构造提供所以必须要给value赋值,即使不用到也得提供参数
-->
<constructor-arg name="name" value="------测试"></constructor-arg>
<constructor-arg name="age" value="19"></constructor-arg>
<constructor-arg name="birthday" ref="now"> </constructor-arg><!--constructor标签不可以编译日期-->
<!--ref-->
</bean>
<!--配置日期-->
<bean id="now" class="java.util.Date"></bean> </beans>
 2.使用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">
<!--注入的方式:
1.使用构造函数提供(使用较少)
2.使用set方法提供(使用较多)
3.使用注解提供-->
<!--========================使用set方法提供(使用较多)=============================-->
<bean id="service" class="service.Impl.ServiceImpl">
<!--property标签 bean的内部
1.name:用于指定注入的所调用的set方法名称
-->
<property name="name" value="test"/>
<property name="age" value="24"/>
<property name="birthday" ref="now"/>
</bean>
<bean id="now" class="java.util.Date"/>
</beans>

  2.1.复杂依赖注入

<?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">
<!--注入的方式:
1.使用构造函数提供(使用较少)
2.使用set方法提供(使用较多)
3.复杂注入
//3.使用注解提供-->
<!--======================复杂注入===============================-->
<bean id="ser" class="service.Impl.ServiceImpl">
<property name="myStrs">
<array>
<value>aaa</value>
<value>bbb</value>
</array>
</property>
<property name="myList">
<list>
<value>list1</value>
<value>2</value>
</list>
</property>
<property name="myMap">
<map>
<entry key="1" value="啊啊啊"></entry>
<entry key="2"><value>啊啊啊</value></entry>
</map>
</property>
<property name="myProps">
<props>
<prop key="测试标签体">测试标签体</prop>
</props>
</property>
</bean>
<!--用于给Map结构注入的标签
map标签和props结构相同可以互换
用于给list结构集合注入的标签
list array set 都可以使用
--> </beans>

  3.注解依赖注入

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--基于注解-->
<!-- 告知spring框架在,读取配置文件,创建容器时,扫描注解,依据注解创建对象,并存入容器中 -->
<context:component-scan base-package="com"/>
</beans>

 

ssm 创建bean的三种方式和spring依赖注入的三种方式的更多相关文章

  1. Spring依赖注入的三种方式

    看过几篇关于Spring依赖注入的文章,自己简单总结了一下,大概有三种方式: 1.自动装配 通过配置applicationContext.xml中的标签的default-autowire属性,或者标签 ...

  2. SSH深度历险记(八) 剖析SSH核心原则+Spring依赖注入的三种方式

           于java发育.一类程序猿必须依靠类的其他方法,它是通常new依赖类的方法,然后调用类的实例,这样的发展问题new良好的班统一管理的例子.spring提出了依赖注入的思想,即依赖类不由程 ...

  3. SSH深度历险(八) 剖析SSH核心原理+Spring依赖注入的三种方式

           在java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依 ...

  4. 面试突击77:Spring 依赖注入有几种?各有什么优缺点?

    IoC 和 DI 是 Spring 中最重要的两个概念,其中 IoC(Inversion of Control)为控制反转的思想,而 DI(Dependency Injection)依赖注入为其(Io ...

  5. spring——依赖注入的三种方式

    1 构造器注入(与构造器有直接关系) 默认无参构造 3种构造方式:通过<contructor-arg>调用类中的构造器 下标 <bean id="userService&q ...

  6. Spring基础05——Spring依赖注入的三种方式

    Spring支持3种依赖注入的方式:属性注入.构造器注入.工厂 1.属性注入 属性注入即通过setter方法注入Bean的属性或依赖的对象.使用<property>元素,使用name属性指 ...

  7. spring 依赖注入的3种方式

    在实际环境中实现IoC容器的方式主要分为两大类,一类是依赖查找,依赖查找是通过资源定位,把对应的资源查找回来:另一类则是依赖注入,而Spring主要使用的是依赖注入.一般而言,依赖注入可以分为3种方式 ...

  8. Spring依赖注入的四种方式

    首先,我们需要定义一个Bean的class类: package framework.spring; import org.springframework.beans.BeansException; i ...

  9. spring4之依赖注入的三种方式

    1.Setter注入 <bean id="helloWorld" class="com.jdw.spring.beans.HelloWorld"> ...

  10. Spring依赖注入三种方式详解

    在讲解Spring依赖注入之前的准备工作: 下载包含Spring的工具jar包的压缩包 解压缩下载下来的Spring压缩包文件 解压缩之后我们会看到libs文件夹下有许多jar包,而我们只需要其中的c ...

随机推荐

  1. 【Azure 应用服务】App Service for Container中配置与ACR(Azure Container Registry)的RABC权限

    问题描述 在使用App Service for container时,在从ACR(Azure Container Registry)中获取应用的镜像时,需要使用对应的权限.默认情况为在ACR中启用Ad ...

  2. 【Azure Developer】Java代码访问Key Vault Secret时候的认证问题,使用 DefaultAzureCredentialBuilder 或者 ClientSecretCredentialBuilder

    问题描述 使用Java SDK获取Key Vault Secret机密信息时,需要获取授权.通常是使用AAD的注册应用(Client ID, Tenant ID, Client Secret)来获取  ...

  3. 【Azure 应用服务】Function App中的函数(Functions)删除问题

    问题描述 Function App 中的函数如何删除问题 问题分析 1)在Function App的门户上,点击"Delete"进行删除 2) 进入Function App的高级管 ...

  4. 独家消息:阿里云悄然推出RPA云电脑,已与多家RPA厂商开放合作

    独家消息:阿里云悄然推出RPA云电脑,已与多家RPA厂商开放合作 RPA云电脑,让RPA开箱即用算力无限? 文/王吉伟 这几天,王吉伟频道通过业内人士获得独家消息,阿里云近期推出了一个名为「RPA云电 ...

  5. 4、zookeeper的事件监听机制

    watcher概念 https://zookeeper.apache.org/doc/r3.4.14/zookeeperProgrammers.html#sc_WatchRememberThese z ...

  6. 基于 Mindspore 框架与 ModelArts 平台的 MNIST 手写体识别实验

    简介 实验包含 2部分: 基于 Mindspore 框架的模型本地训练及预测 基于 Modelarts 平台和 PyTorch框架的模型训练及部署 基于 Mindspore 框架的模型本地训练及预测 ...

  7. P8+架构师养成计划

    一.P8+要求 1.收集能力要求 1.专业能力 技术架构.业务架构.做到无中生有. 2.基石能力 沟通协调能力.团队管理能力.逻辑能力.风险控制能力. 3.影响力 团队内部影响.外部影响.行业影响力. ...

  8. 序列图 时序图 PlantUML vscode drawio 制作

    序列图 时序图 PlantUML vscode drawio 制作 需求 最近发现 序列图 很多文档都用到,而且很好用.经过研究用vscode,idea都可以编写.这里用vscode编写比较简单. d ...

  9. Vue + Element-ui实现后台管理系统(6)---权限管理思路讲解

    权限管理思路讲解 有关后台管理系统之前写过五篇博客,看这篇之前最好先看下这五篇博客.另外这里只展示关键部分代码,项目代码放在github上: mall-manage-system 1.Vue + El ...

  10. Android编译系统

    一.概述 在 Android 7.0 之前,Android 编译系统使用 GNU Make 描述和shell来构建编译规则,模块定义都使用Android.mk进行定义,Android.mk的本质就是M ...