回顾Spring
Spring是一个开源的轻量级的Java开发框架(framework),为了解决企业级应用开发的复杂性而创建的,简化开发
Spring是如何简化Java开发的
1、基于POJO的轻量级和最小侵入性编程,所有的东西都是bean
2、通过IOC 依赖注入(DI)和面向接口实现松耦合
3、基于切面AOP和惯例进行声明式编程
4、通过切面和模板减少样式代码、xxxTemplate
什么是SpringBoot
随着 Spring 不断的发展,涉及的领域越来越多,项目整合开发需要配合各种各样的文件,慢慢变得不那么易用简单,违背了最初的理念,甚至人称配置地狱。Spring Boot 正是在这样的一个背景下被抽象出来的开发框架,目的为了让大家更容易的使用 Spring 、更容易的集成各种常用的中间件、开源软件
Spring Boot 基于 Spring 开发,它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。同时它集成了大量常用的第三方库配置(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等),Spring Boot 应用中这些第三方库几乎可以零配置的开箱即用。
Spring Boot的主要优点:
-
为所有Spring开发者更快的入门
-
开箱即用,提供各种默认配置来简化项目配置
-
内嵌式容器简化Web项目
-
没有冗余代码生成和XML配置的要求
使用IDEA创建一个SpringBoot项目
1.IDEA 创建一个新的项目
2.这里可以把Package改成与GroupID一致 比较符合平常的开发包名习惯(因为不改的话后面java包下自动会有Artifact名的包 所以可以删掉 这里只要com.Zyfgoup 像SSM项目一样)
3.勾选一些依赖 Web开发关键就是这个SpringWeb 其他可根据需要勾选(为了方便还勾选了Lombok、thymeleaf)
依赖下载太慢 可以在pom文件中
<repositories> <repository> <id>aliyun-repos</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>aliyun-plugin</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories>
@SpringBootApplication注解的这个类是SpringBoot的主配置类,SpringBoot就会运行这个类的main方法来启动SpringBoot项目。
在这个类同级的目录下创建controller、mapper、service等包 这里测试只创建一个controller即可
访问localhost/hello时返回hello SpringBoot 运行上面那个类的main方法 浏览器访问localhost/hello
一个简单SpringBoot项目就搭建起来了
分析一下pom中的依赖 在Springboot中要用什么依赖很多都是通过Spring-boot-start-xxx来导入依赖的
比如spring-boot-starter-thymeleaf/web 等等
SpringBoot将所有的功能场景都抽取出来,做成一个个的starter (启动器),只需要在项目中引入这些starter即可,所有相关的依赖都会导入进来 , 我们要用什么功能就导入什么样的场景启动器即可 ;我们未来也可以自己自定义 starter
官网的一些starter的pom
<parent> //父依赖 所有其他的依赖的版本都根据这个SpringBoot的版本来控制 <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.Zyfgoup</groupId> <artifactId>springbootstudy</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springbootstudy</name> <description>Demo project for Spring Boot</description> //jdk版本 <properties> <java.version>1.8</java.version> </properties> //添加阿里云镜像 <repositories> <repository> <id>aliyun-repos</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>aliyun-plugin</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> //thymeleaf依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> //web <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> //lombok <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> //test <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> </dependencies> //打包插件 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>