1什么是SpringBoot
Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。
2.2、SpringBoot四个主要特性
1、SpringBoot Starter:他将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的Maven或Gradle构建中;
2、自动配置:SpringBoot的自动配置特性利用了Spring4对条件化配置的支持,合理地推测应用所需的bean并自动化配置他们;
3、命令行接口:(Command-line-interface, CLI):SpringBoot的CLI发挥了Groovy编程语言的优势,并结合自动配置进一步简化Spring应用的开发;
4、Actuatir:它为SpringBoot应用的所有特性构建一个小型的应用程序。但首先,我们快速了解每项特性,更好的体验他们如何简化
回顾我们之前的 SSM 项目,搭建过程还是比较繁琐的,需要:
1、配置web.xml,加载spring和spring mvc
2、配置数据库连接、配置spring事务
3、配置加载配置文件的读取,开启注解
。。。
配置完成之后部署tomcat 调试
而使用 Spring Boot 来开发项目则只需要非常少的几个配置就可以搭建起来一个 Web 项目,并且利用 IDEA 可以自动生成生成,这简直是太爽了...
华丽的分割线----------------------------------------------------------------------------------------------------
案例:
一.导入依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>jquery</artifactId> <version>3.3.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <!-- 添加freemarker模版的依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>
application.properties文件中新增freemarker配置
## Freemarker 配置 spring.freemarker.template-loader-path=classpath:/templates/ spring.freemarker.cache=false spring.freemarker.charset=UTF-8 spring.freemarker.check-template-location=true spring.freemarker.content-type=text/html spring.freemarker.expose-request-attributes=false spring.freemarker.expose-session-attributes=false spring.freemarker.request-context-attribute=request spring.freemarker.prefix=/ spring.freemarker.suffix=.ftl
在src/main/resource/templates文件夹中创建index01.ftl文件
创建controller层
package com.my.springboot01.controller; import com.my.springboot01.dao.Student; import com.my.springboot01.entity.Estapro; import com.my.springboot01.service.EstaService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import java.util.*; @Controller @RequestMapping("/boot") public class HellowordldController { @Autowired EstaService service; @RequestMapping("/hello") public String hello(){ return "我是NB的SpringBoot666"; } @RequestMapping("/getAll") @ResponseBody public List<Estapro> getAll(){ return service.getAll(); } /*异常处理*/ @RequestMapping("/getTwo") @ResponseBody public String getTwo(){ int num=5/0; return "异常处理"; } @RequestMapping("/freeFirst") public String freeFirst(ModelMap map){ map.put("name","goiaogiao包"); return "index01";//找index01.ftl } /*返回student类型数据*/ @RequestMapping("/getstudent") @ResponseBody public Student getstudent(){ Student stu1=new Student(1,"脏"); return stu1; } /*返回list集合数据*/ @RequestMapping("/getlist") @ResponseBody public List<Student> getlist(){ List<Student> list=new ArrayList<>(); Student stu1=new Student(1,"鲁班"); Student stu2=new Student(2,"曾总"); list.add(stu1); list.add(stu2); return list; } /*返回set集合数据*/ @RequestMapping("/getset") @ResponseBody public Set<Student> getset(){ Set<Student> set=new HashSet<>(); Student set1=new Student(1,"狗"); Student set2=new Student(2,"猫"); set.add(set1); set.add(set2); return set; } /*返回map集合数据*/ @RequestMapping("/getmap") @ResponseBody public Map<Integer,Student> getmap(){ Map<Integer,Student> map=new HashMap<>(); Student map1=new Student(1,"你们"); Student map2=new Student(2,"我们"); map.put(1,map1); map.put(2,map2); return map; } }