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& ...
 
随机推荐
- contos7搭建syslog服务端与客户端
			
搭建中心服务端1,编辑文件/etc/rsyslog.conf,找到以下内容,将前面的#注释符合去除#$ModLoad imtcp#$InputTCPServerRun 514 2,在/etc/rsys ...
 - linux下lampp的启动和停止脚本
			
今天试着写了lampp的启动停止脚本,和上一篇的tomcat的启动停止有一点小区别,就是lampp启动之后有很多的进程号,如果按照tomcat的停止脚本写就会出错,下面做细细的介绍 1.lampp的停 ...
 - js vue 请求
			
. Vue 的 GET 请求 var vm = new Vue({ el: '#app', data: { resp: {}, api_url: '/index', }, methods: { get ...
 - MongoDB4.0 WINDOWS环境下 副本集、分片部署
			
部署开始: 创建路径 D:\Program Files\MongoDB\MySet下 config Data log 文件夹 config文件夹下准备配置文件: 分片1的副本集1 storage: d ...
 - 学习笔记DL003:神经网络第二、三次浪潮,数据量、模型规模,精度、复杂度,对现实世界冲击
			
神经科学,依靠单一深度学习算法解决不同任务.视觉信号传送到听觉区域,大脑听学习处理区域学会“看”(Von Melchner et al., 2000).计算单元互相作用变智能.新认知机(Fukushi ...
 - Go语言极速入门手册.go
			
Github: https://github.com/coderzh/CodeTips /* gotips_test.go: Golang速学速查速用代码手册 Source: github.com/c ...
 - 使用sphinx快速为你python注释生成API文档
			
sphinx简介sphinx是一种基于Python的文档工具,它可以令人轻松的撰写出清晰且优美的文档,由Georg Brandl在BSD许可证下开发.新版的Python3文档就是由sphinx生成的, ...
 - DevExpress 控件汉化代码和使用方法
			
DevExpress 第三方控件汉化的全部代码和使用方法 DevExpress.XtraEditors.Controls 此控件包中包含的控件最多,包括文本框,下拉列表,按钮,等等 ...
 - 18.18 Datasheet Note
			
18.18.1 DM9000A datasheet Ethernet Controller with General Processor Interface Ethernet interface pr ...
 - 电路 - 基尔霍夫定律(KLL);节点流入电流等于流出电流。
			
下面是我在学习STM32 中ADC测量电压,时候接触掉ADC的测量范围在0~3.3V 之间,不满足于实际使用,用于电路知识设计电压放大电路.(图片来自野火) 上面个的电路,可以等效出一个电路公式:(V ...