快速创建spring boot项目
1 依赖配置
<!--设定父级依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
</parent>
<dependencies>
<!--web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2 启动类
package com.ry;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//启动类
@SpringBootApplication
public class AppStarter {
public static void main(String[] args) {
//运行当前应用
//工程默认会打成jar包,该方法直接run起来
SpringApplication.run(AppStarter.class,args);
}
}
3 控制类
package com.ry.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 1 spring boot 不使用jsp
* 2 spring boot 使用http协议
* 3 json无缝对接
* 4 前端使用模板技术,前端页面全是HTML,数据都用json
* 5
*/
@Controller
public class TestController {
@RequestMapping("/hello")
@ResponseBody
public String sayHello() {
return "hellospringboot";
}
}
简单的创建完成
idea可以直接创建,创建需要联网(包也需要联网,仓库有就不要网),再选择所需要的插件配置文件
resources 目录中有static和templates两个文件夹,还有application.properties配置文件,或者application.yaml(yml)
static 放css img js html 文件的
templates 放模板的地方
spring boot强烈建议不使用jsp
f老师说过,框架越来越简单,不好处就是,对程序员的要求越来越低了,对解决业务能力越来越高!
比方说你要去搞人工智能,大家都在找算法工程师,有一天,算法非常稳定了,我们只需要传一个参数就能搞定了,
越来越简单,还是得搞业务。
业务能力这块儿才是重点!
亲爱的f老师的干货笔记(请别转载)
SpringBoot
- SpringBoot概述
springboot不是对spring的增强,而是一个快速使用spring进行开发的框架。其产生的背景是因为随着动态语言(Scala,Groovy)的流行,Java语言开发显得尤其笨重,繁琐的配置,低下的开发效率,复杂的部署流程以及第三方技术集成难度大。
在这种情况下springboot产生了,他使用的是(习惯优于配置)项目中存在大量的配置,此外还内置一些习惯性配置,大大减少我们的工作量。使用springboot可以很容易创建一个独立运行(运行jar,内嵌servlet容器)、准生产级的基于spring框架的项目,使用springboot我们可以不用甚至只需要很少的spring配置。
-
- Spring存在的问题
虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但与此同时它要求的回报也不少。除此之外,项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。
-
- SpringBoot核心功能
- 独立运行的spring项目
- SpringBoot核心功能
springboot可以以jar包形式直接运行,如 java -jar xxx.jar 优点是:节省服务器资源
-
-
- 内嵌servlet容器
-
springboot可以选择内嵌Tomcat,Jetty,这样我们无须以war包形式部署项目。
-
-
- 提供starter简化Maven配置
-
例如引入spring-boot-starter-web时会自动引入
-
-
- 自动配置spring
-
springboot会根据在类路径中的jar包,类,为jar包里的类自动配置Bean,这样会极大减少我们要使用的配置。当然springboot只考虑了大部分开发场景,并不是所有的场景,如果在实际的开发中我们需要自动配置Bean,而springboot不能满足,则可以自定义自动配置。
-
-
- 准生产的应用监控
-
springboot提供基于http,ssh,telnet对运行时的项目进行监控
-
-
- 无代码生成和xml配置
-
springboot大量使用spring4.x提供的注解新特性来实现无代码生成和xml配置。spring4.x提倡使用Java配置和注解配置组合,而springboot不需要任何xml配置即可实现spring的所有配置。
综上我们可以发现:
springboot让开发变得简单,让部署变得简单,让监控变得简单,让配置变得更简单。
优点:
- 快速构建项目
- 对主流框架无缝集成
- 项目可以独立运行,无需依赖外部servlet容器
- 提供运行时的应用监控
- 极大提高了开发,部署效率
- 与Docker容器等集成方便
- springboot提供基于http,ssh,telnet对运行时的项目进行监控
- 快速入门
- 应用传统方式创建项目:
- 使用idea创建maven工程
- 应用传统方式创建项目:
-
-
- 添加SpringBoot起步依赖
-
根据SpringBoot官方要求,项目要继承SpringBoot的起步依赖spring-boot-starter-parent
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.6.RELEASE</version> </parent> |
SpringBoot需要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> |
-
-
- 编写启动类
-
@SpringBootApplication public class SpringBootApp {
public static void main(String[] args) { SpringApplication.run(MySpringBootApplication.class); } |
-
-
- 编写Controller
-
@Controller public class QuickStartController {
@RequestMapping("/quick") @ResponseBody public String quick(){ return "Hello,Spring boot!"; }
} |
-
-
- 测试运行
-
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.0.1.RELEASE) |
通过访问http://localhost:8080/quick,可以查看请求结果。
-
-
- SpringBoot工程热部署
-
我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费了大量的时间,我们可以在修改代码后不重启就能生效,在 pom.xml 中添加如下配置就可以实现这样的功能,我们称之为热部署。
<!--热部署配置--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> |
在Eclipse该配置会一次成功,观察Intellij IDEA,会发现并没有变化,主要原因是因为idea没有实时编译,因此需要做以下设置:
之后,使用ctrl+shift+alt+/,点击registry,即可完成设置。
-
-
- 应用idea快速创建springboot工程
-
为了能够提高开发效率,官方为开发者提供了相关的快速构建功能和工具,例如基于eclipse的sts,而idea凭借自身强大的支持,可以帮助我们快速完成工程的搭建工作: