1.SpringBoot介绍
随着动态语言的流行。java的开发显得很笨重,
- 繁多的配置;
- 底下的开发效率;
- 复杂的部署流程;
- 第三方技术整合难度大;
2.优势
- 1.配置少,效率高;
- 2.运行jar,内嵌serviet
- 3.不需要配置到tomcat
- 4.微服务;
3.快速构建spring项目
- 需求:创建maven项目,添加pom依赖
3.1. pom文件中添加依赖:
<groupId>org.springframework</groupId>
<artifactId>gs-spring-boot</artifactId>
<version>0.1.0</version>
<--相关的父依赖-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<--可以创建jar包-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
spring-boot-starter-parent 是当前项目的父级依赖
spring-boot-starter : Spring Boot 场景启动器,Spring Boot将所有的功能场景抽取出来,做成一个个的starters(启动器),只需项目里引入相关场景的starter, 就会将它所有依赖导入进来。要用什么功能就导入什么场景的启动器。
3.2. 编写控制层代码
@RestController
public class HelloController {
@RequestMapping(value = "users",method = RequestMethod.GET)
public @ResponseBody Object users()
{
List<String> userList = new ArrayList<>();
userList.add("小太阳");
userList.add("测试");
userList.add("love");
System.out.println("get :users");
return userList;
}
@RequestMapping(value = "login",method = RequestMethod.POST)
public @ResponseBody Object login(String name,String pwd)
{
Map<String,Object> map = new HashMap<>();
if("123".equals(pwd)&&"love".equals(name)){
map.put("status",0);
}else{
map.put("stasus",-1);
}
System.out.println("post:login");
return map;
}
/**用户自定义变量测试
* @param name
* @param pwd
* @return
*/
@RequestMapping(value = "info",method = RequestMethod.GET)
public @ResponseBody Object info(String name,String pwd)
{
List<String> userList = new ArrayList<>();
userList.add(name);
userList.add(pwd);
userList.add(name.length()+"");
userList.add(pwd.length()+"");
System.out.println("get request:info api");
return userList;
}
}
3.3 创建启动类
@SpringBootApplication //标示启动类
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
通常有一个名为 *Application 的入口 类,里面定义一个main方法,使用
SpringApplication.run(HelloMailAppliation.class, args); 来启动 SpringBoot 应用项目
@SpringBootApplication 注解主要组合了 @SpringBootConfiguration、@EnableAutoConfiguration、
@ComponentScan
@SpringBootApplication 是以下3个注解的总和:
@SpringBootConfiguration:
用于定义一个Spring Boot的配置类**( 配置类 等同 配置文件)
引用了 @Configuration 注解,是Spring底层的一个注解,用于定义 Spring 的配置类。
配置类也是容器中的一个组件 @Component
@EnableAutoConfiguration :
告诉Spring Boot开启自动配置功能,这样Spring Boot会自动根据你导入的依赖jar包来自动
配置项目
@ComponentScan:
该注解标识的类, 会被 Spring 自动扫描并且装入bean容器。
3.4. 可以将当前项目直接打包成jar包:
需要添加依赖
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
在IDEA中点击maven project->lifectcle->package
邮键maven build 即可打包成jar文件
3.5 运行jar包
cmd 下运行 java -jar jar包名称
启动jar包可能失败,可能8080端口被占用;
- 第一步,cmd 窗口中输入【netstat-ano】,回车,之后就会显示所有的端口占用情况
- 第二步,继续输入【netstat -aon|findstr “端口”】,这里的提示的端口为8080,那么就输入命令为【netstat -aon|findstr"8080"】,回车之后就可以看见列表中的PID。根据PID在电脑的任务管理器中查看对应的占用程序,然后将其关闭即可
- 第三步,可以看到占有8080这个程序的进程ID:7172,继续输入命令【tasklist|findstr “7172”】,7172就是进程ID
- 杀死进程:taskkill /pid 7652 /f
4.定义一个测试文件;