最后
2020年在匆匆忙忙慌慌乱乱中就这么度过了,我们迎来了新一年,互联网的发展如此之快,技术日新月异,更新迭代成为了这个时代的代名词,坚持下来的技术体系会越来越健壮,JVM作为如今是跳槽大厂必备的技能,如果你还没掌握,更别提之后更新的新技术了。
更多JVM面试整理:
轻量级方案
提供简单的,统一的,高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。
四、Spring核心作用
Spring 框架用来管理 [创建 | 使用 | 销毁] 项目中的组件,由于Spring框架可以帮我们创建管理项目中的组件对象,因此也习惯称Spring是一个工厂或容器
。
组件: dao,service都是项目中的组件
五、第一个环境搭建
5.1、新建空项目
新建项目,选择空项目,下一步
填写项目名Spring
,选择自己的项目目录,点击完成
5.2、新建Maven模块
创建Maven模块前,先检查Maven配置是不是已经OK,点开设置,搜索Maven查看
打开项目结构,新建模块
选择Maven模块,换了个主题,继续,哈哈
填写项目名,项目存放位置,组Id,工件名和版本号一般不修改,点击完成
5.3、引入依赖
Maven项目就创建好了,然后再Pom.xml
中引入Spring
应用相关依赖包,依赖坐标如下:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
</dependencies>
因为本地仓库没有这些依赖,所以需要刷新Maven仓库,去自己配置的国内镜像站下载相应依赖包,稍等就会下载完成,就不报红了
什么是依赖,说的简单点就是Java代码包,里面有很多的Java类,Spring需要运行,需要这些代码支持,所以把它们成为依赖
5.4、引入配置文件
名称任意,位置项目包下的任意位置,习惯叫做application.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
5.5、创建组件类
在Java目录下新建一个dao包,用于存放与数据库映射的Java实体类User,User内容如下:
package dao;
public class User {
private int id;
private String name;
public User() {
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
5.6、Spring工厂管理
现在把dao层下的User类,告诉并交给Spring,打开application.xml
,编写以下内容
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--通过bean标签管理组件对象-->
<bean id="User" class="dao.User" scope="prototype"/>
</beans>
5.7、启动工厂测试
和dao同级,创建一个启动类MainApplication
,注释看代码
import dao.User;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainApplication {
public static void main(String[] args) {
// 定义一个ClassPathXmlApplicationContext类型的变量
ClassPathXmlApplicationContext context;
// 通过创建ClassPathXmlApplicationContext对象,参数为配置文件xml名
// 这个类在org.springframework.context.support包下
context = new ClassPathXmlApplicationContext("application.xml");
// context事实上就是Spring容器了,现在你可以通过容器暴露的getBean()方法
// 参数为配置文件中的id唯一标志,获取实例对象
User user = (User) context.getBean("User");
User user1 = (User) context.getBean("User");
System.out.println(user);
System.out.println(user1);
// 因为配置的是prototype多例,所以两次创建了两个是不同对象,返回false
// scope默认值是singleton,单例,如果不配置scope,这里结果就是true了
System.out.println(user == user1);
}
}
# 写在最后
可能有人会问我为什么愿意去花时间帮助大家实现求职梦想,因为我一直坚信时间是可以复制的。我牺牲了自己的大概十个小时写了这片文章,换来的是成千上万的求职者节约几天甚至几周时间浪费在无用的资源上。
![复习一周,字节跳动三场技术面+HR面,不小心拿了offer](https://img-blog.csdnimg.cn/img_convert/a2ca65b7b956feefd906d29e3bf0b52a.webp?x-oss-process=image/format,png)
![复习一周,字节跳动三场技术面+HR面,不小心拿了offer](https://img-blog.csdnimg.cn/img_convert/6056b7e400021198858580fba8f73fff.webp?x-oss-process=image/format,png)
> 上面的这些(算法与数据结构)+(Java多线程学习手册)+(计算机网络顶级教程)等学习资源
> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**
**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
法与数据结构)+(Java多线程学习手册)+(计算机网络顶级教程)等学习资源
> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**
**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**