springboot(二)之springboot介绍及入门案例

一、springboot介绍

SpringBoot其实并不是一个全新的框架,而是内部集成了很多的其他框架,而且做好了默认的配置,比如spring与mybatis的整合,spring与springmvc的整合,spring与redis的整合等等。使得开发者可以非常方便的开发,部署项目。

二、springboot的优势

1)开箱即用,提高开发效率和部署效率
2)内部集成很多框架的默认配置
3)内部内嵌一个tomcat无需依赖外部的web容器

三、案例一

需求:在页面上显示helloworld

3.1创建maven项目

springboot(二)之springboot介绍及入门案例
springboot(二)之springboot介绍及入门案例
springboot(二)之springboot介绍及入门案例
springboot(二)之springboot介绍及入门案例

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";
	}
}

运行结果为:
springboot(二)之springboot介绍及入门案例
springboot(二)之springboot介绍及入门案例

四、接收参数

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);
	}
}

springboot(二)之springboot介绍及入门案例

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
该项目的端口还在,所以启动失败。
springboot(二)之springboot介绍及入门案例

五、响应

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且路径没有发生改变
springboot(二)之springboot介绍及入门案例

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:设置扫描包,默认扫描同包和子包
springboot(二)之springboot介绍及入门案例
@Filter:定义过滤器