SpringBoot知识点总结(一)

1、Spring Boot 开发环境

1. jdk 的配置

使用 IDEA 进行开发,在 IDEA 中配置 jdk 的方式很简单,然后打开 File->Project Structure

1. 选择 SDKs
2. 在 JDK home path 中选择本地 jdk 的安装目录
3. 在 Name 中为 jdk 自定义名字

通过以上三步骤,即可导入本地安装的 jdk。如果是使用 STS 或者 eclipse 可以通过两步骤添加:

1、window->preference->java->Instralled JRES 来添加本地 jdk。
2、window–>preference–>java–>Compiler 选择 jre,和 jdk 保持一致。
2. Spring Boot 工程的构建
2.1 IDEA 快速构建

IDEA 中可以通过 File->New->Project 来快速构建 Spring Boot 工程。选择 Spring Initializr,在 Project SDK 中选择刚刚导入的 jdk,点击 Next,到了项目的配置信息。
Group:填企业域名,一般采用域名反装的方式定义,例如使用 com.yan
Artifact:填项目名称,例如工程名 demo,如果项目规模较大这里可能会采用模块名称
Dependencies:可以添加项目中所需要的依赖信息,根据实际情况来添加,这里只需要选择 Web 即可。

2.2 官方构建

第二种方式可以通过官方构建,步骤如下:

1、访问 http://start.spring.io/或者 http://start.aliyun.com/。
2、在页面上输入相应的 Spring Boot 版本、Group 和 Artifact 信息以及项目依赖,然后创建项目。
3、下载解压后,使用 IDEA 导入该 maven 工程:File->New->Model from Existing Source,然后选择解

压后的项目文件夹即可。如果是使用 eclipse 可以通过 Import->Existing Maven Projects->Next,然后选择解
压后的项目文件夹即可。

2.3 maven 配置

创建 Spring Boot 项目后需要进行 maven 配置。打开 File->settings,搜索 maven,配置一下本地的 maven 信
息。
在 Maven home directory 中选择本地 Maven 的安装路径;在 User settings file 中选择本地 Maven 的配置文件
所在路径。在配置文件中配置一下国内阿里的镜像,这样在下载 maven 依赖时,速度很快。

nexus-aliyun
*
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public

如果是使用 eclipse 可以通过 window–>preference–>Maven–>User Settings 来配置,配置方式和上面一致。

2.4 编码配置

同样地新建项目后,一般都需要配置编码
IDEA 中仍然是打开 File->settings,搜索 encoding,配置一下本地的编码信息。
如果是使用 eclipse 有两个地方需要设置一下编码:

1、window–> perferences–>General–>Workspace,将 Text file encoding 改成 utf-8
2、window–>perferences–>General–>content types,选中 Text,将 Default encoding 填入 utf-8

这样编码设置完成即可启动项目工程了。

3. Spring Boot 项目工程结构

Spring Boot 项目总共有三个模块
src/main/java 路径:主要编写业务程序
src/main/resources 路径:存放静态文件和配置文件
src/test/java 路径:主要编写测试程序
默认情况下会创建一个启动类 Demo01Application,该类上面有个@SpringBootApplication 注解,该启动类中
有个 main 方法,Spring Boot 启动只要运行该 main 方法即可,非常方便。另外 Spring Boot 内部集成了 tomcat,
不需要人为手动去配置 tomcat,开发者只需要关注具体的业务逻辑即可。
到此为止 Spring Boot 就启动成功了,为了比较清楚的看到效果,可以写一个 Controller 来测试。注意后续开
发中定义的包必须是主包的子包,例如主包为 com.yan,则以后的包名称为 com.yan.biz 业务、com.yan.dao
等。进入企业的第一件事情应该是了解公司的编程规范
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController 复合注解@Controller+@ResponseBody,@Controller 用于声明当前类是一个控制器类,
而且通过自动组件扫描会成为受管 bean。@ResponseBody 用于声明当前类方法的返回值会自动转换为 JSON
格式
@RequestMapping(“/start”) 针对当前类中的所有方法声明名空间。定义@RequestMapping 时如果没有属性
名称则默认名称为 value,value 实际上是 path 属性的别名,只有一个属性 value 时,value 可以省略;如果多
个属性时则 value 不能省略。如果不定义 method 请求方法时,则所有的请求方法均可匹配
public class StartController {
@RequestMapping(“/springboot”) 针对方法进行地址映射,这里的请求 URL 地址为/start/springboot,
不是/springboot
public String startSpringBoot() {
return “Welcome to the world of Spring Boot!”;
}
}
重新运行 main 方法启动项目,在浏览器中输入 localhost:8080/start/springboot,如果看到 Welcome to the
world of Spring Boot!,那么项目启动成功!Spring Boot 就是这么简单方便!端口号默认是 8080,如果想要
修改,可以在 application.yml 文件中使用 server.port 来人为指定端口,如 8001 端口:
server:
port: 8001
在具体的应用开发中可以使用 properties 配置文件或者 yaml 配置文件两种
在这里插入图片描述
一般建议开发中首选 yml 格式的文件,文件后缀可以是 yml 或者 yaml。可以通过格式缩进的方式表达层次结
构。解析 yml 格式的文件需要依赖 snakeyaml,这个依赖由 web-starter 依赖引入
在这里插入图片描述
为什么选择使用 SpringBoot2.6.13,不使用 SpringBoot3?
是因为后期开发中需要使用 SpringCloud ali 和 JDK1.8

4. 总结

快速学习在 IDEA 中导入 jdk 以及使用 IDEA 如何配置 maven 和编码,如何快速的创建和启动 Spring Boot 工
程。IDEA 对 Spring Boot 的支持非常友好,建议使用 IDEA 进行 Spring Boot 的开发。

2、Spring Boot 返回 Json 数据

XML 文件的解析
常见的解析工具有 DOM4j、JDOM 等,为了标准化 XML 文件解析,Java 中提出了 JAXP 规范,使用的解析模
型有

1. DOM:将标记语言文档一次性加载进入内存中,在内存中形成一颗 DOM 树(服务器端常用)
  • 优点:操作方便,可以对文档进行 CRUD 的所有操作
  • 缺点:一次性加载进入内存形成 DOM 树,非常消耗资源
2. SAX:逐行读取,基于事件驱动(安卓终端常用)
  • 优点:不消耗资源
  • 缺点:只能读取,不能增删改
public class Test2 {
public static void main(String[] args) throws Exception {
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
SAXParser saxParser = parserFactory.newSAXParser();
final List<Student> studentList = new ArrayList<Student>(); 因为 SAX 解析并不缓存数据,所以
解析过程中的数据需要自行编程实现存储
saxParser.parse("xml02/students.xml", new DefaultHandler() {
private Student student=null;
private int flag=0;
public void startElement(String uri, String localName, String qName, Attributes attributes)
throws SAXException {
if ("student".equals(qName)) {
student=new Student();
String id=attributes.getValue("id");//获取当前标签的指定名称的属性
if(id!=null && id.trim().length()>0)
student.setId(id);
}else if("name".equals(qName))
flag=1;
else if("age".equals(qName))
flag=2;
else if("sex".equals(qName))
flag=3;
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
String tmp = new String(ch, start, length);
if(tmp!=null && tmp.trim().length()>0){
if(flag==1)
student.setName(tmp.trim());
else if(flag==2){
Integer kk=Integer.parseInt(tmp.trim());
student.setAge(kk);
}else if(flag==3)
student.setSex(tmp.trim());
}
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
flag=0;
if("student".equals(qName))
studentList.add(student);
}
});
studentList.forEach(System.out::println);
}
}

早期数据传输使用 xml 作为交互格式,例如 webservice 技术,但是由于 xml 解析比较麻烦,所以现在在项目
开发中,在接口与接口之间以及前后端之间数据的传输都使用 Json 格式,在 Spring Boot 中接口返回 Json 格
式的数据很简单,在 Controller 中使用@RestController 注解即可返回 Json 格式的数据,@RestController 也是
Spring Boot 新增的一个复合注解。
源代码:其中 Target、Retention 和 Documented 是元注解
@Target({ElementType.TYPE}) 用于声明注解可以使用在什么地方,Type 表示可以使用在类上
@Retention(RetentionPolicy.RUNTIME) 用于声明注解需要保持到什么阶段,Runtime 表示注解在编译生
成的字节码中一直保持到运行时

@Documented
@Controller
@ResponseBody
public @interface RestController {
String value() default "";
}

@RestController 注 解包 含 了 原来 的 @Controller 和@ResponseBody 注 解, 使 用 过 Spring 对
@Controller 注解用于声明当前类是控制器类,@ResponseBody 注解是将返回的数据结构转换为 Json 格式。
所以在默认情况下,使用了@RestController 注解即可将返回的数据结构转换成 Json 格式,Spring Boot 中默
认使用的 Json 解析技术框架是 jackson。点开 pom.xml 中的 spring-boot-starter-web 依赖,可以看到一个
spring-boot-starter-json 依赖:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
<scope>compile</scope>
</dependency>

Spring Boot 中对依赖都做了很好的封装,可以看到很多 spring-boot-starter-xxx 系列的依赖,这是 Spring Boot
的特点之一,不需要人为去引入很多相关的依赖了,starter-xxx 系列直接都包含了所必要的依赖,所以再次点
进去上面这个 spring-boot-starter-json 依赖,可以看到:

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-parameter-names</artifactId>
<scope>compile</scope>
</dependency>

到此为止知道了 Spring Boot 中默认使用的 json 解析框架是 jackson。默认的 jackson 框架对常用数据类型的转 Json 处理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值