spring入门 依赖入注的三种方式(1)
第一种:构造器参数注入
第二种:setter方法属性注入(setter方法的规范-JavaBean规范)
第三种:接口注入
Bean 属性的注入:对一个对象的属性的赋值
1.构造器参数注入:
public class User{
private String username;
public User(String username){
this.username = username;
}
}
=====================================================================================
2.接口注入
ServletRequestAware接口:
public class UsrAction implements ServletRequestAware{
public void setServlet(request){
this.request = request;
}
private HttpServletRequest request;
}
=====================================================================================
3.setter方法注入,这个之前也有的解释这里就重新打一边,理一理
public class User{
private String username;
public void setUsername(String username){
this.username = username
}
}
//前一篇我所写的参数是UserDao所以请勿搞混名字,
Spring 框架规范中通过配置文件配置的方式,只支持构造器参数注入和setter方法属性注入,不支持接口注入 !
=====================================================================================
在这里写一个构造器注入
1.创造一个Car类
package com.demo.gzqzhuru;
//构造器注入
public class Car {
private String name;
private Double price;
private Integer id;
//构造的时候注入属性值
public Car(String name, Double price, Integer id) {
this.name = name;
this.price = price;
this.id = id;
}
@Override
public String toString() {
return "Car [name=" + name + ", price=" + price + ", id=" + id + "]";
}
}
2.在全局文件中配置时候要使用construor-arg标签
<!-- 构造器注入 -->
<bean id="car" class="com.demo.gzqzhuru.Car">
<!--
<constructor-arg :进行构造器注入,注意Car类中必须有对应的构造方法
两类:
1类:指定哪个参数来赋值
index:使用索引定位哪个参数
name:使用参数名来定位
type:使用数据类型来进行定位
2类:赋具体什么值
value:简单数据类型,字符串,数字等
ref:复杂类型,主要就只是bean对象,值要写bean的名字
-->
<constructor-arg index="0" value="1001"/>
<constructor-arg name="name" value="红旗" />
<constructor-arg type="java.lang.Double" value="999999999999d"/>
</bean>
3.最后编写test类
public class SpringCarTest {
public void test() {
ApplicationContext ac = new
ClassPathXmlApplicationContext("spring-context.xml");
Car car= (Car) ac.getBean("car");
System.out.println(car);
}
}
//注意最后的导包,请勿导错了,是以下两种
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
一切完成后就能获得最终结果了。
spring入门 依赖入注的三种方式(1)的更多相关文章
- Spring学习之实例化bean的三种方式
实例化bean的三种方式 构造器实例化bean Person.java public class Person { private String name; private Integer age; ...
- Spring MVC异常统一处理的三种方式
Spring 统一异常处理有 3 种方式,分别为: 使用 @ ExceptionHandler 注解 实现 HandlerExceptionResolver 接口 使用 @controlleradvi ...
- 【spring Boot】spring boot获取资源文件的三种方式【两种情况下】
首先声明一点,springboot获取资源文件,需要看是 1>从spring boot默认的application.properties资源文件中获取 2>还是从自定义的资源文件中获取 带 ...
- spring中创建bean对象的三种方式以及作用范围
时间:2020/02/02 一.在spring的xml配置文件中创建bean对象的三种方式: 1.使用默认构造函数创建.在spring的配置文件中使用bean标签,配以id和class属性之后,且没有 ...
- 解决dubbo注册zookepper服务IP乱入问题的三种方式
最近做一个项目引入了dubbo+zookepper的分布式服务治理框架.在应用的发布的时候出现一个怪问题.zookepper服务是起在开发服务器192.168.23.180上.本机起应用服务提供者注册 ...
- @Autowired注解和启动自动扫描的三种方式(spring bean配置自动扫描功能的三种方式)
前言: @Autowired注解代码定义 @Target({ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD, Elemen ...
- Spring 依赖注入(DI) 的三种方式 和 对集合类型的注入
// 分别省略了getter setter public class Student { private String name; private int age; private Teacher t ...
- Spring加载Properties配置文件的三种方式
一.通过 context:property-placeholder 标签实现配置文件加载 1) 用法: 1.在spring.xml配置文件中添加标签 <context:property-plac ...
- Spring3实战第二章第一小节 Spring bean的初始化和销毁三种方式及优先级
Spring bean的初始化和销毁有三种方式 通过实现 InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法: 优先级第二通过 <bean& ...
随机推荐
- 禁止用su切换到root
http://jie388.blog.51cto.com/1433454/920492
- height属性
高度属性: height:长度值|百分比|auto 最大高度:max-height 最小高度:min-height 说明:设置块级元素和替换元素的内容高度.
- 田螺便利店—filezilla实现Linux和windows通信(二)
filezilla,FileZilla是一个免费开源的FTP软件,分为客户端版本和服务器版本,具备所有的FTP软件功能.可控性.有条理的界面和管理多站点的简化方式使得Filezilla客户端版成为一个 ...
- [Java Web学习]junit.framework.AssertionFailedError: No tests found in {Class}
No tests found in com.XXXXX.XXX.inboundPrepService.bizLogic.prepDeterminationEngine.workers.Determin ...
- vpdn1
在使用L2TP协议构建的VPDN典型组网中,包含LAC和LNS两部分. 1.LAC LAC表示L2TP访问集中器(L2TP Access Concentrator),是附属在交换网络上的具有PPP端系 ...
- 0. General-purpose tools (通用工具 8个)
http://en.wikipedia.org/wiki/Netcat这个简单的实用程序通过TCP或UDP网络连接读写数据. 它被设计为一个可靠的后端工具,可以直接或轻松地使用其他程序和脚本驱动. 同 ...
- MySQL1-安装
MySQL 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. 我们也可以将数据 ...
- Devexpress gridview cell增加控件
1.根据上图次序,先添加三类控件类型: 2.根据上图次序设置columnEdit 3.点开ColumnEdit , 设置 check 和 uncheck的 value
- 基于MATLAB搭建的DDS模型
基于MATLAB搭建的DDS模型 说明: 累加器输出ufix_16_6数据,通过cast切除小数部分,在累加的过程中,带小数进行运算最后对结果进行处理,这样提高了计算精度. 关于ROM的使用: 直接设 ...
- 友善RK3399/NanoPC-T4开发板wiringPi的C语言访问GPIO外设实例讲解 -【申嵌视频】
1 wiringPi简介 wiringPi库最早是由Gordon Henderson所编写并维护的一个用C语言写成的类库,除了GPIO库,还包括了I2C库.SPI库.UART库和软件PWM库等,由于w ...