一、概念
项目管理框架,也是一套JAVAEE解决方案;
优秀的设计模式组合;
是一款将众多框架整合的产品
二、架构促成
核心技术:依赖注入,事件,资源,验证,数据绑定,类型转换,I18N(i开头,N结尾,中间18个字符), SpEL(Spring表达式语言),AOP(面向切面编程);
测试:模拟对象,TestContext框架,Spring MVC测试,WebTestClient。
数据访问:事物,DAO,JDBC,ORM
继承:远程处理,JMS,JCA,JMX,电子邮件,任务,调度,缓存。
语言:Kotlin,Groovy,动态语言

三、pom.xml配置

<?xml version="1.0" encoding="UTF-8"?>

4.0.0

<groupId>org.example</groupId>
<artifactId>SpringTest</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.1.6.RELEASE</version></dependency>
</dependencies>

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 四、(IOC &DI)控制反转&依赖注入: bean节点:

id:指定bean的id,可以通过该id得到该bean的对象。
class:指明该类的路径,要求该bean类有 无参构造器。
scope:特指作用范围:
1、singleton 单例模式(默认);
2、prototype 多实例模式;
3、request:web请求;
4、session:web会话。
第一种(利用name):

poto实体:

@Data
public class User {
private int uid;
private String username;
private String password;
private int age;
private String telephone;
private Brand brand;

public User() {
}public User(int uid, String username, String password, int age, String telephone) {this.uid = uid;this.username = username;this.password = password;this.age = age;this.telephone = telephone;
}public User(int uid, String username, String password, int age, String telephone, Brand brand) {this.uid = uid;this.username = username;this.password = password;this.age = age;this.telephone = telephone;this.brand = brand;
}public int getUid() {return uid;
}public void setUid(int uid) {this.uid = uid;
}public String getUsername() {return username;
}public void setUsername(String username) {this.username = username;
}public String getPassword() {return password;
}public void setPassword(String password) {this.password = password;
}public int getAge() {return age;
}public void setAge(int age) {this.age = age;
}public String getTelephone() {return telephone;
}public void setTelephone(String telephone) {this.telephone = telephone;
}public Brand getBrand() {return brand;
}public void setBrand(Brand brand) {this.brand = brand;
}@Override
public String toString() {return "User{" +"uid=" + uid +", username='" + username + '\'' +", password='" + password + '\'' +", age=" + age +", telephone='" + telephone + '\'' +", brand=" + brand +'}';
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
beans.xml

1 2 3 4 5 6 7 8 9 10 11 12 13 Test

ApplicationContext applicationContext = new ClassPathXmlApplicationContext(“Beans.xml”);
User user = applicationContext.getBean(“user”,User.class);
System.out.println(user.toString());
System.out.println();
1
2
3
4

bean
constructor-arg :调用带参构造器
property :调用Set方法
value:值
ref :引用
第二种(直接创建):

<bean id="user2" class="pojo.User"><constructor-arg value="2"/><constructor-arg value="橘梨纱"/><constructor-arg value="123456"/><constructor-arg value="21"/><constructor-arg value="15122223333"/><property name="brand" ref="brand"/>
</bean>

1
2
3
4
5
6
7
8
9

代码简单
可读性较差
第三种( 利用下标):

<bean id="user3" class="pojo.User"><constructor-arg index="0" value="3"/><constructor-arg index="1" value="三上悠亚"/><constructor-arg index="2" value="123456"/><constructor-arg index="3" value="25"/><constructor-arg index="4" value="15122312232"/><property name="brand" ref="brand"/>
</bean>

1
2
3
4
5
6
7
8
9

第四种(利用类型):

<bean id="user4" class="pojo.User"><constructor-arg type="java.lang.String" value="樱井莉亚"/><constructor-arg type="int" value="4"/><constructor-arg type="int" value="27"/><constructor-arg type="java.lang.String" value="12345"/><constructor-arg type="java.lang.String" value="15199987777"/><property name="brand" ref="brand"/>
</bean>

1
2
3
4
5
6
7
8
9

相同类型 按先后顺序.
第五种(schema代理):

<?xml version="1.0" encoding="UTF-8" ?>

<bean id="user5" class="pojo.User" pp:uid="5" pp:username="深田咏美" pp:password="12345" pp:age="25" pp:telephone="13533229988"/>

1 2 3 4 5 6 7 8 9

可读性较差
数组
实体类

package pojo;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Array {
private String[] array;
private List list;
private Set set;
private Map<Object, Object> map;

@Override
public String toString() {return "Array{" +"array=" + Arrays.toString(array) +", list=" + list +", set=" + set +", map=" + map +'}';
}public String[] getArray() {return array;
}public void setArray(String[] array) {this.array = array;
}public List<Object> getList() {return list;
}public void setList(List<Object> list) {this.list = list;
}public Set<Integer> getSet() {return set;
}public void setSet(Set<Integer> set) {this.set = set;
}public Map<Object, Object> getMap() {return map;
}public void setMap(Map<Object, Object> map) {this.map = map;
}

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
ArrayBean.xml

    <property name="array"><array><value>苍井空</value><value>小泽玛利亚</value><value>泷泽萝拉</value><value>武藤兰</value><value>麻美由真</value></array></property>

————————————————
版权声明:本文为CSDN博主「深田咏美脑残粉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/llp705/article/details/107458264

Spring -从走火到入魔相关推荐

  1. 看完Spring源码记不住,是我脑子不太好吗?

    都说大厂面试必问源码,可很多人看完Spring源码记不住,是脑子有问题吗?当然不是!是因为你没有掌握学习源码的技巧. 看完源码的我- 我的朋友"路神"子路和"大魔王&qu ...

  2. spring boot项目 中止运行 最常用的几种方法

    spring boot项目 中止运行 最常用的几种方法: 1. 调用接口,停止应用上下文 @RestController public class ShutdownController impleme ...

  3. html+spring boot简单的ajax数据传输实现

    本篇讲解在前后端不分离情况下的html+spring boot的项目数据传输实现 首先,后台我写了三个接口 package com.demo.ajax.controller;import com.de ...

  4. Spring Boot整合Spring Data JPA操作数据

    一. Sping Data JPA 简介 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套 JPA 应用框架,底层使用了 Hibernate 的 J ...

  5. Spring AOP + Redis解决重复提交的问题

    Spring AOP + Redis解决重复提交的问题 用户在点击操作的时候,可能会连续点击多次,虽然前端可以通过设置按钮的disable的属性来控制按钮不可连续点击,但是如果别人拿到请求进行模拟,依 ...

  6. Spring cloud 微服务docker容器化最佳实践

    Spring cloud 是当下最炙手可热的微服务套件,我们将介绍如何整合Docker容器达到高效快捷的构建发布 采用了dockerfile-maven-plugin插件发布镜像到远程docker主机 ...

  7. ssh(Struts+spring+Hibernate)三大框架整合-简述

    ssh(Struts+spring+Hibernate)三大框架配合使用来开发项目,是目前javaee最流行的开发方式,必须掌握: 注意: 为了稳健起见,每加入一个框架,我们就需要测试一下,必须通过才 ...

  8. Strutsw2与Spring整合流程-简述

    1.      新建WEB工程: 2.      导入struts2开发包,和资源配置文件 ① globalMessages.properties ② struts.properties 3.     ...

  9. spring Bean自动装配

    spring Bean自动装配 自动装配是使用spring满足bean依赖的一种方式. spring会在应用上下文中为某个bean寻找其依赖的bean. spring自动装配需要从两个角度来实现,或者 ...

最新文章

  1. CP20常见问题解答
  2. IDEA2017注册码
  3. javascript立体学习指南
  4. Memory与Merge特性
  5. php+mysql实现数据分批插入
  6. 如何在命令行中使用jq将JSON转换为CSV
  7. OpenCV Using Python——基于SURF特征提取和金字塔LK光流法的单目视觉三维重建 (光流、场景流)...
  8. eclipse中为了format的代码更加好看,少换行,可以设置java、xml、jsp的代码line width。
  9. 面试:一文搞懂堆和栈的区别
  10. BootStrap中Affix控件的使用方法及如何保持布局的美观
  11. Flir Blackfly S工业相机:颜色校正讲解及配置与代码设置方法
  12. 安卓Dalvik VM虚拟机
  13. SAT考试填空习题(一)及答案
  14. WEP 加密的工作原理和安全缺陷
  15. 大数据可视化管理antV使用详解
  16. css实现固定宽高比例的div
  17. chrome最新版去掉书签栏上应用和还原默认页的方法
  18. 是什么让复旦校长彻夜难眠?
  19. access tempvars 宏_Access数据库教程之使用常用对象来加快Access 2007数据库三
  20. 2022-2028全球手持式伤口成像设备行业调研及趋势分析报告

热门文章

  1. 计算机因特尔网络论文,电子商务课Intel未来教育理念论文
  2. c语言指针笔试面试题,c语言指针面试常见问题
  3. 苹果电脑开机慢怎么办 苹果笔记本开机特别慢的处理方法
  4. 全民都是评选专家,提前一天泄露 2020 博客之星最终结果
  5. 夺命雷公狗—玩转SEO---52---浅谈人工智能在SEO中的应用之机器学习,内链布局篇...
  6. UltraISO使用和U盘安装原版系统指南
  7. 电脑网页游戏微端服务器失败,电脑重装后微端游戏玩不了,网页也进不了
  8. 夜曲歌词 拼音_矢野真纪《夜曲》罗马拼音歌词
  9. 微信营销和微博营销有什么不同
  10. AI算法面试难度升级,该如何应对?