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的更多相关文章

  1. java 面向对象(九):类的结构:构造器(一)简介;属性赋值顺序;JavaBean的概念

    1.构造器(或构造方法):Constructor构造器的作用: * 1.创建对象 * 2.初始化对象的信息2.使用说明: * 1.如果没显式的定义类的构造器的话,则系统默认提供一个空参的构造器 * 2 ...

  2. 深入源码分析Spring中的构造器注入

    # 1. 示例 构造器注入类,分别有三个构造器,一个是无参构造器,一个是注入一个Bean的构造器,一个是注入两个Bean的构造器: public class ConstructorAutowiredT ...

  3. Spring 依赖注入的方式

    Spring 支持3中依赖注入的方式 1.属性注入  通过setter 方法注入Bean的属性或依赖的对象. <bean id = " " class = " &q ...

  4. Spring构造器注入、set注入和注解注入

    记得刚开始学spring的时候,老师就反复的提到依赖注入和切面,平常的java开发中,在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种方法耦合度太高并且不容易测试,sp ...

  5. Spring学习笔记1—依赖注入(构造器注入、set注入和注解注入)

    什么是依赖注入 在以前的java开发中,某个类中需要依赖其它类的方法时,通常是new一个依赖类再调用类实例的方法,这种方法耦合度太高并且不容易测试,spring提出了依赖注入的思想,即依赖类不由程序员 ...

  6. Spring4学习回顾之路03—XML配置Bean ,依赖注入的方式

    配置Bean的形式可以基于XML文件的方式,也可以基于注解的方式,而Bean的配置方式可以通过全类名(反射),通过工厂方式和FactoryBean. XML形式 <?xml version=&q ...

  7. 依赖注入的方式(DI)

    方式: 接口注入: setter方法注入: 构造方法注入: 接口注入: public class ClassA { private InterfaceB clzB; public void doSom ...

  8. SpringBoot 构造器注入、Setter方法注入和Field注入对比

    0. 引入 今天在看项目代码的时候发现在依赖注入的时候使用了构造器注入,之前使用过 Field 注入和 Setter 方法注入,对构造器注入不是很了解.经过查阅资料看到,Spring 推荐使用构造器注 ...

  9. 【Spring】浅谈spring推荐构造器注入

    一.前言 ​ Spring框架对Java开发的重要性不言而喻,其核心特性就是IOC(Inversion of Control, 控制反转)和AOP,平时使用最多的就是其中的IOC,我们通过将组件交由S ...

随机推荐

  1. 有手就行3——持续集成环境—maven、tomcat、安装和配置

    有手就行3--持续集成环境-maven.tomcat.安装 持续集成环境(5)-Maven安装和配置 持续集成环境(6)-Tomcat安装和配置 持续集成环境(5)-Maven安装和配置 在Jenki ...

  2. .NET6: 开发基于WPF的摩登三维工业软件 (2)

    在<.NET6: 开发基于WPF的摩登三维工业软件 (1)>我们创建了一个"毛坯"界面,距离摩登还差一段距离.本文将对上一阶段的成果进行深化,实现当下流行的暗黑风格UI ...

  3. 2021江西省赛线下赛赛后总结(Crypto)

    2021江西省赛线下赛 crypto1 题目: from random import randint from gmpy2 import * from Crypto.Util.number impor ...

  4. Solution -「NOI 模拟赛」出题人

    \(\mathcal{Description}\)   给定 \(\{a_n\}\),求一个 \(\{b_{n-1}\}\),使得 \(\forall x\in\{a_n\},\exists i,j\ ...

  5. 【ybtoj】二分算法例题

    [基础算法]第三章 二分算法 例一 数列分段 题目描述 对于给定的一个长度为N的正整数数列A,现在将其分成M段,并要求每段连续,且每段和的最大值最小. 输入格式 第1行包含两个正整数N,M. 第2行包 ...

  6. NTFS ADS(备用数据流)

    NTFS Alternate Data Stream(ADS)   1993年微软推出了基于流行的NT平台的Windows NT操作系统.之后,NTFS作为WIndows开发基于NT的操作系统时的首选 ...

  7. suse 12 部署chrony时间同步服务器

    文章目录 1.ntp和chrony的区别 1.1.关于chrony 1.2.chronyd的优势 2.环境介绍 3.部署chrony 4.配置chrony 4.1.配置文件解析 4.2.查看chron ...

  8. .NET CORE 鉴权

    基础信息 1.什么是鉴权授权? 鉴权是验证用户是否拥有访问系统的权利,授权是判断用户是否有权限做一些其他操作. 2.传统的Session 和Cookie 主要用于无状态请求下的的用户身份识别,只不过S ...

  9. MYSQL数据表损坏的原因分析和修复方法小结

    MYSQL数据表损坏的原因分析和修复方法小结 1.表损坏的原因分析 以下原因是导致mysql 表毁坏的常见原因: 1. 服务器突然断电导致数据文件损坏. 2. 强制关机,没有先关闭mysql 服务. ...

  10. Ansible部署K8s集群

    目录 检查网络:k8s-check.yaml 连接配置:k8s-conn-cfg.yaml 配置k8s集群dns解析: k8s-hosts-cfg.yaml 配置yum源:k8s-yum-cfg.ya ...