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& ...
随机推荐
- Xcode 添加pch 文件
搜索prefix 找到 APPle Clang Language ---> 将precompile Prefix Header 改为YES ----> 再输入$(SRCROOOT)/Ot ...
- Python之删除空白
Python能够找出字符串开头.末尾.两端多余的空白. lstrip()方法可以剔除字符串开头的空白: rstrip()方法可以剔除字符串末尾的空白: strip()可以剔除字符串两端的空白: fav ...
- [经验分享] MySQL Innodb表导致死锁日志情况分析与归纳【转,纯学习】
在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志. 两个sql语句如下: (1)insert into backup_ta ...
- ubuntu16.04中如何启用floodlight的其中一种方式
1. 提前一台安装好mininet,另一台安装好floodlight 2. 在mininet里面的custom文件夹下自定义文件ProjectGroup10_Topology.py from mini ...
- javascript 4.2
element.value="......"也可以为属性设置新的值 setAttribute()方法是“第一级DOM”的组成部分之一,DOM是适用于多种环境和多种程序设计语言的通用 ...
- Python练习十一
1.写一个程序,提示输入整数X,然后计算从1到X连续整数的和. num = int(input('please the input number:')) sum_num = 0 for i in ra ...
- creator rotationY的问题
最近在做一个2D的小游戏,碰撞方面由于懒,就直接使用cocos自带的物理组件RigidBody了. 但是在父节点挂载RigidBody之后,会导致设置rotationY时失效,具体原因没有深查,估计是 ...
- 将TUM数据集的RGB-D数据集转化为klg格式
1.在github上下载代码png_to_klg git clone https://github.com/HTLife/png_to_klg 2.将png_to_klg目录下的associate.p ...
- javascript 创建节点和新增节点
createElement(tabName) 创建一个为tagName的新元素节点 ANode.appendChild(BNode)把B节点追加至A节点的末尾 insertBefore(ANode,B ...
- 名字top500字典 各种格式及python脚本
原文件名字top500 链接: https://pan.baidu.com/s/1cv0jPYb1-EBceoZz3QNvgg 密码: bat5 中文名字 链接: https://pan.baidu. ...