ssm 创建bean的三种方式和spring依赖注入的三种方式
<!--创建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依赖注入的三种方式的更多相关文章
- Spring依赖注入的三种方式
看过几篇关于Spring依赖注入的文章,自己简单总结了一下,大概有三种方式: 1.自动装配 通过配置applicationContext.xml中的标签的default-autowire属性,或者标签 ...
- SSH深度历险记(八) 剖析SSH核心原则+Spring依赖注入的三种方式
于java发育.一类程序猿必须依靠类的其他方法,它是通常new依赖类的方法,然后调用类的实例,这样的发展问题new良好的班统一管理的例子.spring提出了依赖注入的思想,即依赖类不由程 ...
- SSH深度历险(八) 剖析SSH核心原理+Spring依赖注入的三种方式
在java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依 ...
- 面试突击77:Spring 依赖注入有几种?各有什么优缺点?
IoC 和 DI 是 Spring 中最重要的两个概念,其中 IoC(Inversion of Control)为控制反转的思想,而 DI(Dependency Injection)依赖注入为其(Io ...
- spring——依赖注入的三种方式
1 构造器注入(与构造器有直接关系) 默认无参构造 3种构造方式:通过<contructor-arg>调用类中的构造器 下标 <bean id="userService&q ...
- Spring基础05——Spring依赖注入的三种方式
Spring支持3种依赖注入的方式:属性注入.构造器注入.工厂 1.属性注入 属性注入即通过setter方法注入Bean的属性或依赖的对象.使用<property>元素,使用name属性指 ...
- spring 依赖注入的3种方式
在实际环境中实现IoC容器的方式主要分为两大类,一类是依赖查找,依赖查找是通过资源定位,把对应的资源查找回来:另一类则是依赖注入,而Spring主要使用的是依赖注入.一般而言,依赖注入可以分为3种方式 ...
- Spring依赖注入的四种方式
首先,我们需要定义一个Bean的class类: package framework.spring; import org.springframework.beans.BeansException; i ...
- spring4之依赖注入的三种方式
1.Setter注入 <bean id="helloWorld" class="com.jdw.spring.beans.HelloWorld"> ...
- Spring依赖注入三种方式详解
在讲解Spring依赖注入之前的准备工作: 下载包含Spring的工具jar包的压缩包 解压缩下载下来的Spring压缩包文件 解压缩之后我们会看到libs文件夹下有许多jar包,而我们只需要其中的c ...
随机推荐
- 私有git服务器搭建-gitlib版
目录 环境 centos6.5 这里有官网安装地址教程: 这里有机器配置安装需求 CPU Memory 安装步骤 安装配置依赖项 添加GitLab仓库,并安装到服务器上 启动GitLab 配置 git ...
- 【Azure 事件中心】Spring Boot 集成 Event Hub(azure-spring-cloud-stream-binder-eventhubs)指定Partition Key有异常消息
问题描述 在Spring Boot应用中集成Event Hub,发送消息时指定Partition Key,日志中发现异常: 应用使用Event Hub版本为 <dependency> &l ...
- C#多线程(11):线程等待
目录 前言 volatile 关键字 三种常用等待 再说自旋和阻塞 SpinWait 结构 属性和方法 自旋示例 新的实现 SpinLock 结构 属性和方法 示例 等待性能对比 前面我们学习了很多用 ...
- .Net之多语言配置
介绍 支持多语言使网站可以覆盖更广泛的受众. ASP.NET Core 提供的服务和中间件可将网站本地化为不同的语言. 本次示例环境:vs2019.net5 配置 无需引用Nuget包即可实现以下功能 ...
- opencv库图像基础2-python
opencv库图像基础2-python 图像的简单变换 先导入库 import cv2 import matplotlib.pyplot as plt import numpy as np 1.图像的 ...
- 解决Abp设置DefaultLanguage默认语言不生效的问题
@ 目录 现象 原因分析 解决问题 现象 默认地,Abp的语言提供程序将返回的CultureInfo为En,在一些默认实现的接口(比如/api/TokenAuth/Authenticate)返回的错误 ...
- 摆脱鼠标系列 - 用git命令提交代码
需求 最近开始改变用鼠标的习惯,之前一直是用鼠标点击vscode,点击提交 现在不用鼠标,改用命令行,命令很简单,主要是习惯的改变 实现 vscode环境 ctrl + ` 快捷键打开命令行 git ...
- buu第一页复盘
这里就对之前第一遍没写出来的题目再写一次wp 写在之前 贴一下我的模块文件 from pwn import * from LibcSearcher import * from struct impor ...
- ubuntu 14.04 x86_64编译安装Skyeye1.3.5RC1的心得
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文发布于 2014-11-09 09:19:03 ...
- 记录--前端实现电子签名(web、移动端)通用
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 在现在的时代发展中,从以前的手写签名,逐渐衍生出了电子签名.电子签名和纸质手写签名一样具有法律效应.电子签名目前主要还是在需要个人确 ...