最近也是看到了微框架的不断提及,然后总结一下那时候的知识点。
关于springBoot与它"干爹"
既然谈起了springBoot,就不得不提起它的干爹:spring,我们都知道,spring经典的依赖注入(DI)与面向切面(AOP)成功实现了EJB的功能,它的组件是相为轻量级的,但是另一方面,不得不提及恐怖的配置,便利性与繁琐的切换配置匹配时代,我是没有经历过了,直接是有注解支持的入门。
那么这里主要将其发展阶段分为3个阶段吧。
1、xml配置(spring1.x)
在Spring 1.x时代,使用Spring开发满眼都是xml配置的Bean,随着项目的扩大,我们需要把xml配置文件放到不同的配置文件里,那时需要频繁的在开发的类和
配置文件之间进行切换
2、注解配置(spring2.x)
3、java配置(spring3.x)
Spring 3.0 引入了基于 Java 的配置能力,这是一种类型安全的可重构配置方式,可以代替 XML。我们目前刚好处于这个时代。现在Spring和Springboot都推荐使用java配置。
spring boot来了,让2个时代得事情变得简单——微框架
Spring Boot其设计目的是用来简化Spring应用的初始搭建以及开发采用约定优于配置,只需要“run”就能创建一个独立的、生产级别的Spring应用。Spring Boot为Spring平台及第三方库提供开箱即用的设置(提供默认设置),这样我们就可以简单的开始。多数Spring Boot应用只需要很少的Spring配置。
我们可以使用SpringBoot创建java应用,并使用java –jar 启动它,或者采用传统的war部署方式。
其主要特点(六点):
- l 创建独立的Spring应用程序
- l 嵌入的Tomcat,无需部署WAR文件
- l 简化Maven配置
- l 自动配置Spring
- l 提供生产就绪型功能,如指标,健康检查和外部配置
- l 绝对没有代码生成和对XML没有要求配置
跑起来,我的Hellword
环境准备
DataBase:MySQL
IDE:Eclipse
SpringBoot:1.5.6 (官方网站:http://spring.io/) 2017年7月27
SpringBoot参考文档:
http://docs.spring.io/spring-boot/docs/1.5.6.RELEASE/reference/htmlsingle/
Maven:3.3.9 (官方声明Springboot1.5.6版本需要Maven 3.2+)
Gradle:4.0.2 (官方网站https://gradle.org/)
工程走起
创建的maven,类型为jar的。记得他爹是spring-boot-sta*
pom.xml依赖
maven.org也有,还是贴出来吧
<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>1.5.6.RELEASE</version>
</parent>
<groupId>cn.itcast</groupId>
<artifactId>springboot01-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 配置依赖关系 -->
<dependencies>
<!-- 配置WEB启动器 SpringMVC、Restful、jackson -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
然后等待下载包吧。
如果修改jdk版本
<!-- 定义全局属性 -->
<properties>
<!-- 定义更改JDK版本属性 -->
<java.version>1.7</java.version>
</properties>
加上去,刷新更新maven项目,OK
启动类
显然是用于启动spring-boot的类@SpringBootApplication // 代表为SpringBoot应用的运行主类
public class Application {
public static void main(String[] args) {
/** 运行SpringBoot应用 */
SpringApplication.run(Application.class, args);
}
}
Spring-boot会根据启动类所在的包去扫描包下的东西,比如后面的入门程序
相关注释解析:
测试启动类
启动类(不带spring广告)
@SpringBootApplication // 代表为SpringBoot应用的运行主类
public class Application {
public static void main(String[] args) {
/** 创建SpringApplication应用对象 */
SpringApplication springApplication =
new SpringApplication(Application.class);
/** 设置横幅模式(设置关闭) */
springApplication.setBannerMode(Banner.Mode.OFF);
/** 运行 */
springApplication.run(args);
}
}
入门程序(HelloWord)
不用说:需求肯定是输出一个helloword,不过是 使用Spring MVC实现Hello World输出原来的玩法
<!-- controller注解扫描 -->
<context:component-scan base-package="com.linge.springboot.controller" />
<!-- 注解驱动 -->
<mvc:annotation-driven />
web.xml
<!-- 配置前端控制器 -->
<servlet>
<servlet-name> springboot01-test</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/*.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name> springboot01-test</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
spring-boot玩法
//我们不需要配置文件,直接编写Controller类即可
@RestController
public class HelloController {
// http://localhost:8080/hello
@GetMapping("/hello")
public String hello(){
return "Hello World";
}
}
热部署
<!-- 配置devtools开启热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>