前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >恐怖!这份神仙架构笔记,简直把所有spring boot的核心技术都写出来了!

恐怖!这份神仙架构笔记,简直把所有spring boot的核心技术都写出来了!

原创
作者头像
Java程序猿
修改2020-12-28 11:01:39
5070
修改2020-12-28 11:01:39
举报
文章被收录于专栏:Java核心技术Java核心技术

前言

自从 structs2 出现上次的漏洞以后,对 spring 的关注度开始越来越浓。以前 spring 开发需要配置一大堆的 xml,后台 spring 加入了 annotaion,使得 xml 配置简化了很多,当然还是有些配置需要使用 xml,比如申明 component scan 等。Spring 开了一个新的 model spring boot,主要思想是降低 spring 的入门,使得新手可以以最快的速度让程序在 spring 框架下跑起来。

一、spring boot helloworld

1、那么如何写 Hello world 呢?

1.1 Hello 之步骤:

(1)新建一个 Maven Java 工程 (2)在 pom.xml 文件中添加 Spring Boot Maven 依赖 (3)编写启动类 (4)运行程序

1.2 Hello 之 New

这个步骤很简单,相比大家都会,小编在此为了文档的完整性,稍作简单说明:

首先使用 IDE(Eclipse,MyEclipse)工具新建一个 Maven 工程,可以是 Maven Java Project,也可以是 Maven Web Project,随便取一个工程名称。我使用的是 STS,工程名是 spring-boot-hello1。

1.3 Hello 之 Maven

第二步,在 pom.xml 中引入 spring-boot-start-parent,spring 官方的解释叫什么 stater poms,它可以提供 dependency management,也就是说依赖管理,引入以后在申明其它 dependency 的时候就不需要 version 了, 后面可以看到。

代码语言:txt
复制
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE<ersion>
</parent>
image.gif
image.gif

1.4 Hello 之 maven web

1.5 Hello 之 Maven Run Application

1.6 Hello 之 coding

二、spring boot 返回json数据

在做如下操作之前,我们对之前的 Hello 进行简单的修改,我们新建一个包 com.hpit.test.web 然后新建一个类

HelloControoler, 然后修改 App.java 类,主要是的这个类就是一个单纯的启动类。

主要代码如下:

代码语言:txt
复制
App.java
iackage com.hpit; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* Hello world!
*/

//其中@SpringBootApplication 申明让 spring boot 自动给程序进行必要的配置,等价于以默认属性使用
//@Configuration,@EnableAutoConfiguration 和@ComponentScan
//@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
} }
com.hpit.test.web.HelloController :
package com.hpit.test.web;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController// 标记为:restful
public class HelloController {
@RequestMapping("/")
public String hello(){
return"Hello world!"; } }

运行代码和之前是一样的效果的。

我们在编写接口的时候,时常会有需求返回 json 数据,那么在 spring boot 应该怎么操作呢?主要是在 class 中 加入注解@RestController,

三、spring boot 常用配置

Spring boot 默认端口是 8080,如果想要进行更改的话,只需要修改 applicatoin.properties 文件,在配置文件中

加入:

server.port=9090

常用配置:

代码语言:txt
复制
########################################################
###EMBEDDED SERVER CONFIGURATION (ServerProperties)
########################################################
#server.port=8080
#server.address= # bind to a specific NIC
#server.session-timeout= # session timeout in seconds
#the context path, defaults to '/'
#server.context-path=/spring-boot #修改默认访问路径
#server.servlet-path= # the servlet path, defaults to '/'
#server.tomcat.access-log-pattern= # log pattern of the access log
#server.tomcat.access-log-enabled=false # is access logging enabled
#server.tomcat.protocol-header=x-forwarded-proto # ssl forward headers
#server.tomcat.remote-ip-header=x-forwarded-fo
#server.tomcat.basedir=/tmp # base dir (usually not needed, defaults to tmp)
#server.tomcat.background-processor-delay=30; # in seconds
#server.tomcat.max-threads = 0 # number of threads in protocol handle
#server.tomcat.uri-encoding = UTF-8 # character encoding to use for URL decoding

3.1、修改Java编译版本

修改 java 编译版本

Spring Boot 在编译的时候,是有默认 JDK 版本的,如果我们期望使用我们要的 JDK 版本的话,那么要怎么配置呢?

这个只需要修改 pom.xml 文件的<build> -- <plugins>加入一个 plugin 即可。

代码语言:txt
复制
<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target>
</configuration>
</plugin>

添加了 plugin 之后,需要右键 Maven à Update Projects,这时候你可以看到工程根目录下的 JRE System Library

版本更改了。

四、spring boot 集成JSP

这个部分比较复杂,所以单独创建一个工厂进行讲解:

大体步骤:

(1)创建 Maven web project;

(2)在 pom.xml 文件添加依赖;

(3)配置 application.properties 支持 jsp

(4)编写测试 Controlle

(5)编写 JSP 页面

(6)编写启动类 App.java

1,FreeMarke

2,Groovy

3,Thymeleaf (Spring 官网使用这个)

4,Velocity

5,JSP (貌似 Spring Boot 官方不推荐,STS 创建的项目会在 src/main/resources 下有个 templates 目录,这 里就是让我们放模版文件的,然后并没有生成诸如 SpringMVC 中的 webapp 目录) 不过本文还是选择大家都熟悉的 JSP 来举例,因为使用 JSP 与默认支持的模版需要特殊处理,所以拿来举例更好

(1)创建 Maven web project

使用 Eclipse 新建一个 Maven Web Project ,项目取名为:springboot02

(2)在 pom.xml 文件添加依赖

代码语言:txt
复制
<!-- spring boot parent 节点,引入这个之后,在下面和 spring boot 相关的就不需要引入版本了; --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.3.RELEASE<ersion>
</parent>
image.gif
image.gif

(3)application.properties 配置

(4)编写测试 Controlle

(5)编写JSP页面

(6)编写启动类

五、spring boot集成junit单元测试

Junit 这种老技术,现在又拿出来说,不为别的,某种程度上来说,更是为了要说明它在项目中的重要性。

那么先简单说一下为什么要写测试用例

1. 可以避免测试点的遗漏,为了更好的进行测试,可以提高测试效率2. 可以自动测试,可以在项目打包前进行测试校验3. 可以及时发现因为修改代码导致新的问题的出现,并及时解决

那么本文从以下几点来说明怎么使用 Junit,Junit4 比 3 要方便很多,细节大家可以自己了解下,主要就是版本4中对方法命名格式不再有要求,不再需要继承 TestCase,一切都基于注解实现。

那么 Spring Boot 如何使用 Junit 呢?

1). 加入 Maven 的依赖; 2). 编写测试 service;3). 编写测试类;

代码语言:txt
复制
 加入 Maven 的依赖: <dependency><groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope>
</dependency>
image.gif
image.gif

六、spring boot监控和管理生产环境

spring-boot-actuator 模块提供了一个监控和管理生产环境的模块,可以使用 http、jmx、ssh、telnet 等拉管理和监控应用。审计(Auditing)、健康(health)、数据采集(metrics gathering)会自动加入到应用里面。

首先,写一个最基本的 spring boot 项目。

基于 Maven 的项目添加‘starter’依赖:

代码语言:txt
复制
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

七、spring boot 集成 Redis 缓存

本章牵涉到的技术点比较多:Spring Data JPA、Redis、Spring MVC,Spirng Cache,所以在看这篇文章的时候,需要对以上这些技术点有一定的了解或者也可以先看看这篇文章,针对文章中实际的技术点在进一步了解(注意, 您需要自己下载 Redis Server 到您的本地,所以确保您本地的 Redis 可用,这里还使用了 MySql 数据库,当然你也可以内存数据库进行测试)。

这篇文章会提供对应的 Eclipse 代码示例,具体大体的分如下几个步骤:

(1)新建 Java Maven Project;

(2)在 pom.xml 中添加相应的依赖包;

(3)编写 Spring Boot 启动类;

(4)配置 application.properties;

(5)编写 RedisCacheConfig 配置类;

(6)编写 DemoInfo 测试实体类;

(7)编写 DemoInfoRepository 持久化类;

(8)编写 DemoInfoService 类;

(9)编写 DemoInfoController 类;

(10)测试代码是否正常运行了

(11)自定义缓存 key;

新建 Java Maven Project;

这个步骤就不细说,新建一个 spring-boot-redis Java maven project;

(2)在 pom.xml 中添加相应的依赖包;

在 Maven 中添加相应的依赖包,主要有:spring boot 父节点依赖;spring boot web 支持;缓存服务 spring-contextsupport;添加 redis 支持;JPA 操作数据库;mysql 数据库驱动,具体 pom.xml 文件如下:

代码语言:txt
复制
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLS
chema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.hpit</groupId>
<artifactId>spring-boot-redis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>spring-boot-redis</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 配置 JDK 编译版本. -->
<java.version>1.8</java.version>

文章到这里就结束了!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 一、spring boot helloworld
      • 1、那么如何写 Hello world 呢?
      • 1.2 Hello 之 New
      • 1.3 Hello 之 Maven
      • 1.4 Hello 之 maven web
      • 1.5 Hello 之 Maven Run Application
      • 1.6 Hello 之 coding
    • 二、spring boot 返回json数据
      • 三、spring boot 常用配置
        • 3.1、修改Java编译版本
      • 四、spring boot 集成JSP
        • 五、spring boot集成junit单元测试
          • 六、spring boot监控和管理生产环境
            • 七、spring boot 集成 Redis 缓存
            相关产品与服务
            云数据库 Redis
            腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
            http://www.vxiaotou.com