Spring三种注入方式
2020-02-17 04:49
155 查看
方式一 构造器注入
创建一个类
public class UserT { private String name; public UserT(String name) { this.name = name; } public void setName(String name) { this.name = name; } public void show(){ System.out.println("name="+ name ); } }
构造器注入有三种方式
<!-- 第一种根据index参数下标设置 --> <bean id="userT" class="com.vincewang.pojo.UserT"> <!-- index指构造方法 , 下标从0开始 --> <constructor-arg index="0" value="didi"/> </bean>
<!-- 第二种根据参数名字设置 --> <bean id="userT" class="com.vincewang.pojo.UserT"> <!-- name指参数名 --> <constructor-arg name="name" value="didi"/> </bean>
<!-- 第三种根据参数类型设置 --> <bean id="userT" class="com.vincewang.pojo.UserT"> <constructor-arg type="java.lang.String" value="didi"/> </bean>
方式二 set注入
测试类
public class Address { private String address; public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
创建学生类
public class Student{ private String name; private Address address; private int id; public void setName(String name) { this.name = name; } public void setAddress(Address address) { this.address = address; } public void setid(int id) { this id=id; } }
常量注入
<bean id="student" class="com.vincewang.pojo.Student"> <property name="name" value="小明"/> </bean>
bean注入
<bean id="address" class="com.vincewang.pojo.Address"> <property name="address" value="南京"/> </bean> <bean id="student" class="com.vincewang.pojo.Student"/> <property name="student " value="小明"/> <property name="address" ref="address"/> </bean>
方式三 拓展注入
也就是p命名空间和c命名空间
新建User类
public class User { private String name; private int age; public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + '}'; } public User(String name,int age){ this.name=name; this.age=age; } }
1.p命名空间注入
- 导入约束
xmlns:p="http://www.springframework.org/schema/p"
<bean id="user" class="com.vincewang.pojo.User" p:name="vincewang" p:age="21"/>
2.c命名空间注入
导入约束 :
xmlns:c="http://www.springframework.org/schema/c" <!--C(构造: Constructor)命名空间 , 属性依然要设置set方法--> <bean id="user" class="com.vincewang.pojo.User" c:name="vincewang" c:age="21"/>
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- JavaSE多态
- java和.net的对象类型转换浅谈
- SpringMVC工作流程及代码分析
- No qualifying bean of type 'org.springframework.mail.javamail.JavaMailSender' available: expected at...
- 宠物领养网站(一):简 4000 单搭建SpringBoot+JPA+Gradle+Mysql项目
- 解决 https://start.spring.io 访问报错问题
- 宠物领养网站(二):SpringBoot支持JSP开发配置
- JDK,JRE,JVM的区别与联系
- java中 equals 和 hashcode 的关系
- java知识点总结
- java实现九九乘法表-超简单的一目了然
- Java验证码读取
- java界面实现骰子比赛改进
- BES-多模块Springboot项目MyBatis通用Mapper配置(Controller Service Dao在不同子模块中)
- BES-SpringCloud Gateway网关整合多模块项目-Predicates与Filter
- java实现一个删除固定后缀文件的程序
- java编写贪吃蛇小游戏源代码分享给你们
- @蓝桥杯javaB组习题集入门(4)之第二题:序列求和
- @蓝桥杯javaB组习题集入门(4)第四题:Fibonacci数列
- @java蓝桥杯B组习题基础篇(30)第二题:01字串