springboot(二)之springboot介绍及入门案例
一、springboot介绍
SpringBoot其实并不是一个全新的框架,而是内部集成了很多的其他框架,而且做好了默认的配置,比如spring与mybatis的整合,spring与springmvc的整合,spring与redis的整合等等。使得开发者可以非常方便的开发,部署项目。
二、springboot的优势
1)开箱即用,提高开发效率和部署效率
2)内部集成很多框架的默认配置
3)内部内嵌一个tomcat无需依赖外部的web容器
三、案例一
需求:在页面上显示helloworld
3.1创建maven项目
3.2配置pom.xml文件
需要导入springmvc依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-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>
<!--继承的项目-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!--本项目的信息-->
<groupId>com.zhiyou100</groupId>
<artifactId>springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot</name>
<description>Demo project for Spring Boot</description>
<!--定义版本-->
<properties>
<!--定义jdk的版本-->
<java.version>1.8</java.version>
</properties>
<!--相关依赖-->
<dependencies>
<!--springboot的相关依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!--springboot的测试依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--springMVC的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!--配置maven插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.3直接在生成的SpringBootApplication中的main方法写调用run方法
@SpringBootApplication
@Controller
public class SpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
}
@RequestMapping("hello.do")
@ResponseBody
public String hello(){
return "hello world";
}
}
运行结果为:
四、接收参数
4.1接受单个参数
在controller层创建类,这里我们就叫controller
package com.zhiyou100.springboot.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//该注解是一个组合注解,是Controller和ResponseBody的组合
@RestController
public class TestController {
@RequestMapping("get1.do")
public String getcs(Integer id){
return "id==>"+id;
}
}
运行结果为:
注意:
1)@RestController该注解是一个组合注解,是Controller和ResponseBody的组合
2)在application中要开启包扫描,如下:
@SpringBootApplication
@ComponentScan(basePackages = {"com.zhiyou100.springboot.controller"})//开启包扫描
public class SpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
}
}
4.2接收一个对象
首先先创建实体类,存储数据
4.2.1配置实体类pojo
package com.zhiyou100.springboot.pojo;
public class Goods {
private String name;
private String price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
@Override
public String toString() {
return "Goods{" +
"name='" + name + '\'' +
", price='" + price + '\'' +
'}';
}
public Goods(String name, String price) {
this.name = name;
this.price = price;
}
public Goods() {
}
}
4.2.2创建controller写个方法
@RequestMapping("get2.do")
public String getgoods(Goods goods){
return "goods==>"+ goods;
}
直接运行即可,注意,运行前要将之前运行的关闭了
否则会报错:
org.apache.catalina.LifecycleException: Protocol handler start failed
该项目的端口还在,所以启动失败。
五、响应
SpringBooot的静态资源都存放到resources下的static、public包下比如图片,js,html,css
5.1请求转发forward
package com.zhiyou100.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class ControllerTest2 {
@RequestMapping("get3.do")
public String get3(){
return "hello.html";
}
@RequestMapping("get4.do")
public String get4(){
//默认是请求转发,但是如果要转发到另一个action中需要使用forward指明
return "forward:get3.do";
}
}
这里运行get4.do结果跳转到get3.do且路径没有发生改变
5.2重定向redirect
@RequestMapping("get5.do")
public String get5(){
return "redirect:https://www.baidu.com/";
}
@RequestMapping("get6.do")
public String get6(){
return "redirect:get5.do";
}
路径发生改变了
5.3 访问静态资源
在resources下创建public目录存放一张图片访问,在浏览器上输入http://localhost:8080/3.jpg,如果能访问到说明成功。
主类
@SpringBootApplication:该注解是一个组合注解,由
@SpringBootConfiguration:是一个组合注解由@Configuration等,说明该注解所描述的类是一个xml文件。
@EnableAutoConfiguration:使用自动配置,就是说使用springboot框架自动继承其他框架的配置。 如果不想用默认的配置使用excludeName属性或者exclude属性。
@ComponentScan:设置扫描包,默认扫描同包和子包
@Filter:定义过滤器