构造器注入的方式给Cart属性赋值 关系1:1;1:n
1、通过Spring创建对象,现有Users和Cart实体类,关系为1:1
属性注入的方式给Users属性赋值
2、Cart和Product实体类,关系1:n
构造器注入的方式给Cart属性赋值
Cart中包含Set<Product>、Map<String,Product>
1 package com.spring.entity;
2
3 public class Users {
4 private int id;
5
6 private String username;
7
8 private String password;
9
10 private Cart cart;
11
12 public Cart getCart() {
13 return cart;
14 }
15
16 public void setCart(Cart cart) {
17 this.cart = cart;
18 }
19
20 public int getId() {
21 return id;
22 }
23
24 public void setId(int id) {
25 this.id = id;
26 }
27
28 public String getUsername() {
29 return username;
30 }
31
32 public void setUsername(String username) {
33 this.username = username;
34 }
35
36 public String getPassword() {
37 return password;
38 }
39
40 public void setPassword(String password) {
41 this.password = password;
42 }
43
44 @Override
45 public String toString() {
46 return "Users{" +
47 "id=" + id +
48 ", username='" + username + '\'' +
49 ", password='" + password + '\'' +
50 ", cart=" + cart +
51 '}';
52 }
53 }
Users
1 package com.spring.entity;
2
3 import java.util.Map;
4 import java.util.Set;
5
6 public class Cart {
7 private int id;
8 private int uid;
9 private int pcount;
10 private Set<Product> productSet;
11 private Map<String,Product> productMap;
12
13 public int getId() {
14 return id;
15 }
16
17 public void setId(int id) {
18 this.id = id;
19 }
20
21 public int getUid() {
22 return uid;
23 }
24
25 public void setUid(int uid) {
26 this.uid = uid;
27 }
28
29 public int getPcount() {
30 return pcount;
31 }
32
33 public void setPcount(int pcount) {
34 this.pcount = pcount;
35 }
36
37 public Set<Product> getProductSet() {
38 return productSet;
39 }
40
41 public void setProductSet(Set<Product> productSet) {
42 this.productSet = productSet;
43 }
44
45 public Map<String, Product> getProductMap() {
46 return productMap;
47 }
48
49 public void setProductMap(Map<String, Product> productMap) {
50 this.productMap = productMap;
51 }
52
53 @Override
54 public String toString() {
55 return "Cart{" +
56 "id=" + id +
57 ", uid=" + uid +
58 ", pcount=" + pcount +
59 ", productSet=" + productSet +
60 ", productMap=" + productMap +
61 '}';
62 }
63 }
Cart
1 package com.spring.entity;
2
3 public class Product {
4 private Integer id;
5
6 private String pname;
7
8 private Double pprice;
9
10 private Integer pinventory;
11
12 private String picon;
13
14 private String plocation;
15
16 private Integer pviews;
17
18 public Product() {
19 }
20
21 public Product(Integer id, String pname, Double pprice, Integer pinventory, String picon, String plocation, Integer pviews) {
22 this.id = id;
23 this.pname = pname;
24 this.pprice = pprice;
25 this.pinventory = pinventory;
26 this.picon = picon;
27 this.plocation = plocation;
28 this.pviews = pviews;
29 }
30
31 @Override
32 public String toString() {
33 return "Product{" +
34 "id=" + id +
35 ", pname='" + pname + '\'' +
36 ", pprice=" + pprice +
37 ", pinventory=" + pinventory +
38 ", picon='" + picon + '\'' +
39 ", plocation='" + plocation + '\'' +
40 ", pviews=" + pviews +
41 '}';
42 }
43 }
Product
1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
4 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
5
6 <bean id="u1" class="com.spring.entity.Users">
7 <property name="id" value="1"></property>
8 <property name="username" value="张三"></property>
9 <property name="password" value="123"></property>
10 <property name="cart">
11 <bean class="com.spring.entity.Cart">
12 <property name="id" value="1"></property>
13 <property name="uid" value="1"></property>
14 <property name="pcount" value="30"></property>
15 </bean>
16 </property>
17 </bean>
18
19 <bean id="c1" class="com.spring.entity.Cart">
20 <property name="id" value="1"></property>
21 <property name="uid" value="1"></property>
22 <property name="pcount" value="20"></property>
23 <property name="productSet" >
24 <set>
25 <ref bean="p1"></ref>
26 <ref bean="p2"></ref>
27 <ref bean="p3"></ref>
28 </set>
29 </property>
30 <property name="productMap" ref="mapproduct"></property>
31
32
33 </bean>
34
35 <bean id="p1" class="com.spring.entity.Product">
36 <constructor-arg name="id" value="1"></constructor-arg>
37 <constructor-arg name="pname" value="手机1"></constructor-arg>
38 <constructor-arg name="pprice" value="999"></constructor-arg>
39 <constructor-arg name="pinventory" value="10000"></constructor-arg>
40 <constructor-arg name="picon" value="图片地址"></constructor-arg>
41 <constructor-arg name="plocation" value="北京"></constructor-arg>
42 <constructor-arg name="pviews" value="582"></constructor-arg>
43 </bean>
44 <bean id="p2" class="com.spring.entity.Product">
45 <constructor-arg name="id" value="1"></constructor-arg>
46 <constructor-arg name="pname" value="手机2"></constructor-arg>
47 <constructor-arg name="pprice" value="999"></constructor-arg>
48 <constructor-arg name="pinventory" value="10000"></constructor-arg>
49 <constructor-arg name="picon" value="图片地址"></constructor-arg>
50 <constructor-arg name="plocation" value="北京"></constructor-arg>
51 <constructor-arg name="pviews" value="582"></constructor-arg>
52 </bean>
53 <bean id="p3" class="com.spring.entity.Product">
54 <constructor-arg name="id" value="1"></constructor-arg>
55 <constructor-arg name="pname" value="手机3"></constructor-arg>
56 <constructor-arg name="pprice" value="999"></constructor-arg>
57 <constructor-arg name="pinventory" value="10000"></constructor-arg>
58 <constructor-arg name="picon" value="图片地址"></constructor-arg>
59 <constructor-arg name="plocation" value="北京"></constructor-arg>
60 <constructor-arg name="pviews" value="582"></constructor-arg>
61 </bean>
62
63 <util:map id="mapproduct" >
64 <entry key="1">
65 <ref bean="p1"></ref>
66 </entry>
67 <entry key="2">
68 <ref bean="p2"></ref>
69 </entry>
70 </util:map>
71
72
73
74
75
76
77 </beans>
applicationContext.xml
1 package com.spring.test;
2
3 import com.spring.entity.Cart;
4 import com.spring.entity.Users;
5 import org.springframework.context.ApplicationContext;
6 import org.springframework.context.support.ClassPathXmlApplicationContext;
7
8 public class TestSpring {
9 public static void main(String[] args) {
10 System.out.println("----Users对象的创建----------");
11 ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
12 Users user1 = (Users) ac.getBean("u1");
13 System.out.println(user1);
14
15
16 System.out.println("-------购物车对象的创建-------");
17 Cart cart1 = (Cart) ac.getBean("c1");
18 System.out.println(cart1);
19 }
20 }
TestSpring
构造器注入的方式给Cart属性赋值 关系1:1;1:n的更多相关文章
- java 面向对象(九):类的结构:构造器(一)简介;属性赋值顺序;JavaBean的概念
1.构造器(或构造方法):Constructor构造器的作用: * 1.创建对象 * 2.初始化对象的信息2.使用说明: * 1.如果没显式的定义类的构造器的话,则系统默认提供一个空参的构造器 * 2 ...
- 深入源码分析Spring中的构造器注入
# 1. 示例 构造器注入类,分别有三个构造器,一个是无参构造器,一个是注入一个Bean的构造器,一个是注入两个Bean的构造器: public class ConstructorAutowiredT ...
- Spring 依赖注入的方式
Spring 支持3中依赖注入的方式 1.属性注入 通过setter 方法注入Bean的属性或依赖的对象. <bean id = " " class = " &q ...
- Spring构造器注入、set注入和注解注入
记得刚开始学spring的时候,老师就反复的提到依赖注入和切面,平常的java开发中,在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种方法耦合度太高并且不容易测试,sp ...
- Spring学习笔记1—依赖注入(构造器注入、set注入和注解注入)
什么是依赖注入 在以前的java开发中,某个类中需要依赖其它类的方法时,通常是new一个依赖类再调用类实例的方法,这种方法耦合度太高并且不容易测试,spring提出了依赖注入的思想,即依赖类不由程序员 ...
- Spring4学习回顾之路03—XML配置Bean ,依赖注入的方式
配置Bean的形式可以基于XML文件的方式,也可以基于注解的方式,而Bean的配置方式可以通过全类名(反射),通过工厂方式和FactoryBean. XML形式 <?xml version=&q ...
- 依赖注入的方式(DI)
方式: 接口注入: setter方法注入: 构造方法注入: 接口注入: public class ClassA { private InterfaceB clzB; public void doSom ...
- SpringBoot 构造器注入、Setter方法注入和Field注入对比
0. 引入 今天在看项目代码的时候发现在依赖注入的时候使用了构造器注入,之前使用过 Field 注入和 Setter 方法注入,对构造器注入不是很了解.经过查阅资料看到,Spring 推荐使用构造器注 ...
- 【Spring】浅谈spring推荐构造器注入
一.前言 Spring框架对Java开发的重要性不言而喻,其核心特性就是IOC(Inversion of Control, 控制反转)和AOP,平时使用最多的就是其中的IOC,我们通过将组件交由S ...
随机推荐
- chmod以数字形式改变文件权限
Linux文件的三种身份和四种权限,三种身份分别为: u:文件的拥有者 g:文件所属的群组 o:其他用户 对于每个身份,又有四种权限,分别为: r:读取文件的权限(read) w:写入文件的权限(wr ...
- java_web开发中 遇到可坑
目前有两个坑,: 一 首先在启动tomcat的时候 我进行的一个跳转页面的操作然后报了如下的错误: org.apache.jasper.JasperException: /jsp/frame.jsp ...
- 编译安装haproxy
一.安装lua环境 1.1 安装依赖包 [root@centos7 ~]# yum install gcc readline-devel 1.2 下线lua源码包并解压 [root@centos7 ~ ...
- 读写分离&分库分表学习笔记
读写分离 何为读写分离? 见名思意,根据读写分离的名字,我们就可以知道:读写分离主要是为了将对数据库的读写操作分散到不同的数据库节点上. 这样的话,就能够小幅提升写性能,大幅提升读性能. 我简单画了一 ...
- Solution -「POI 2010」「洛谷 P3511」MOS-Bridges
\(\mathcal{Description}\) Link.(洛谷上这翻译真的一言难尽呐. 给定一个 \(n\) 个点 \(m\) 条边的无向图,一条边 \((u,v,a,b)\) 表示从 ...
- Mybatis结果映射器resultMap的基本用法
<mapper namespace="全局唯一的名称空间"> <resultMap id="本namespace下唯一" type=" ...
- Node 模块规范鏖战:难以相容的 CJS 与 ESM
自 13.2.0 版本开始,Node.js 在保留了 CommonJS(CJS)语法的前提下,新增了对 ES Modules(ESM)语法的支持. 天下苦 CJS 久已,Node 逐渐拥抱新标准的规划 ...
- 操作系统实验一:进程管理(含成功运行C语言源代码)
目录 操作系统实验一:进程管理 1.实验目的 2.实验内容 3.实验准备 3.1.1进程的含义 3.1.2进程的状态 3.1.3进程状态之间的转换 3.2 进程控制块PCB 3.2.1进程控制块的作用 ...
- transient关键字有何作用
使用对象流保存对象时,将对象的全部信息都保存了,但是有些信息是不希望保存,如密码,该如何避免该信息的保存? 使用transient关键字修饰的属性,在保存对象时,该属性并不会被保存. transien ...
- CobaltStrike逆向学习系列(3):Beacon C2Profile 解析
这是[信安成长计划]的第 3 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 Controller 端分析 0x02 Beacon 端分析 0x03 展示图 在上一篇文章中完成了 S ...