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& ...
随机推荐
- DashBoard创建各种表(二)
添加范围过滤器 “ 范围过滤器”允许您将过滤应用于其他仪表板项.此项目显示带有选择拇指的图表,允许您过滤掉沿参数轴显示的值. 如图,可以根据选择不同的CategorySales范围显示图表1的内容了. ...
- swiper插件使用遇到的一点小问题
最近做移动端开发 给出的静态页使用了Swiper,用的是4.0.3版本,应该是比较新的. 静态页这种东西,一般就是给你个雏形,设计部虽然使用了这个插件,但毕竟这个活儿毕竟还是得开发人员来干,所以,静态 ...
- 锋利的jQuery初学(3)
jQuery详细介绍 1,$的含义:就是一个名称符号:jquery占用了两个变量:$和jquery; 2,js与jQuery的入口函数区别 (1),js的window.onload事件是等到所有内容加 ...
- 关于html引用php文件在编译器正常运行,web浏览器出问题的一点心得
首先上图 第一张图是预期效果,也就是编译器运行的效果,第二张则是在浏览器打开的效果.那么为甚么会出现这何种问题呢? 原来:编译器能正常运行 是因为是走的cli模式,而浏览器现在走的是web模式,php ...
- 学习笔记CB001:NLTK库、语料库、词概率、双连词、词典
聊天机器人知识主要是自然语言处理.包括语言分析和理解.语言生成.机器学习.人机对话.信息检索.信息传输与信息存储.文本分类.自动文摘.数学方法.语言资源.系统评测. NLTK库安装,pip insta ...
- C语言 基础
内存的定义 在学习python的时候 了解过内存的管理机制,例如引用计数,垃圾回收,小内存池的概念. 但是并不了解内存究竟是个什么东西?不了解内存的实际存储方式. Mac OS Mojave 处理器 ...
- VCenter6.0.0的安装过程
背景和实验环境介绍 操作系统环境:windows 2008R2 中文企业版 前期环境配置 配置IP信息,把DNS改成自己的IP 修改主机名和后缀 安装和配置DNS服务 Vcenter 添加dns角色 ...
- MQTT研究之EMQ:【wireshark抓包分析】
基于上篇博文[SSL双向验证]的环境基础,进行消息的具体梳理. 环境基础信息: . 单台Linux CentOS7.2系统,安装一个EMQTTD的实例broker. . emq的版本2.3.11. . ...
- MS SQL 数据库所在C盘变得很大解决办法
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG 一般是这个文件夹里的ERRORLOG变得很大.所以要清理. 执行一次EXEC sp_cy ...
- 没有可用软件包 libgdiplus 解决方法
1.下载 epel-release-7-11.noarch.rpm wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel ...