环境约束
–jdk1.8
:
Spring Boot
推荐
jdk1.7
及以上;
java version "1.8.0_112"
–maven3.x
:
maven 3.3
以上版本;
Apache Maven 3.3.9
–IntelliJIDEA2019
–SpringBoot 1.5.9.RELEASE
:
1.5.9
;(相对稳定)
Maven设置
给
maven
的
settings.xml
配置文件的
profifiles
标签添加
<profile>
<id>jdk‐1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
IDEA中Maven配置
pom.xml中导入依赖SpringBoot相关的依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
启动一个SpringBoot程序:
1.编写主程序
@SpringBootApplication
public class HelloWorldMainApplication {
public static void main(String[] args) {
SpringApplication.run(HelloWorldMainApplication.class,args);
}
}
1>@SpringBootApplication:表示这是一个SpringBoot程序
2>SpringApplication.run(HelloWorldMainApplication.class,args):表示启动SpringBoot应用
2.编写相关的Controller
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "Hello world!";
}
}
1>@Controller:表示该类是处理请求的类
2>ResponseBody:表示将结果值返回给浏览器页面
3.直接从Main方法上Run
简化部署
<!‐‐
这个插件,可以将应用打包成一个可执行的
jar
包;
‐‐>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐maven‐plugin</artifactId>
</plugin>
</plugins>
</build>
打包项目为Jar文件
将Jar文件Copy出来,查看路径并通过cmd窗口执行jar命令
POM文件依赖
1.父项目
Spring Boot
的版本仲裁中心;
以后我们导入依赖默认是不需要写版本;(没有在
dependencies
里面管理的依赖自然需要声明版本号)
2.启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐web</artifactId>
</dependency>
spring-boot-starter
-
web
:
spring-boot-starter
:
spring-boot
场景启动器;帮我们导入了
web
模块正常运行所依赖的组件;
Spring Boot
将所有的功能场景都抽取出来,做成一个个的
starters
(启动器),只需要在项目里面引入这些
starter
相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。
主程序类简要研究
![](https://i-blog.csdnimg.cn/blog_migrate/1b26aba19c8decc55dacdc8f7b7e007e.png)
@
SpringBootConfifiguration
:Spring Boot
的配置类;
标注在某个类上,表示这是一个
Spring Boot
的配置类;
@
Confifiguration
:
配置类上来标注这个注解;
配置类
-----
配置文件;配置类也是容器中的一个组件;
@Component
@
EnableAutoConfifiguration
:开启自动配置功能;
以前我们需要配置的东西,
Spring Boot
帮我们自动配置;
@
EnableAutoConfifiguration
告诉
SpringBoot
开启自
动配置功能;这样自动配置才能生效;
![](https://i-blog.csdnimg.cn/blog_migrate/13f0ffc49349578fefd34bd7c46538db.png)
@
AutoConfifigurationPackage
:自动配置包
@
Import
(AutoConfifigurationPackages.Registrar.class)
:
Spring
的底层注解
@Import
,给容器中导入一个组件;导入的组件由
AutoConfifigurationPackages.Registrar.class
;
❤ 将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器;
@
Import
(EnableAutoConfifigurationImportSelector.class)
;
给容器中导入组件?
EnableAutoConfifigurationImportSelector
:导入哪些组件的选择器;
将所有需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中;
会给容器中导入非常多的自动配置类(
xxxAutoConfifiguration
);就是给容器中导入这个场景需要的所有组件,
并配置好这些组件;
有了自动配置类,免去了我们手动编写配置注入功能组件等的工作;
SpringFactoriesLoader.loadFactoryNames(EnableAutoConfifiguration.class,classLoader)
;
Spring Boot
在启动的时候从类路径下的
META-INF/spring.factories
中获取
EnableAutoConfifiguration
指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作;
以前我们需要自己配置的东西,自动配置类都帮我们;
J2EE
的整体整合解决方案和自动配置都在
spring-boot-autoconfifigure-1.5.9.RELEASE.jar
;
快速创建SpringBoot项目
1
、
IDEA
:使用
Spring Initializer
快速创建项目
IDE
都支持使用
Spring
的项目创建向导快速创建一个
Spring Boot
项目;
选择我们需要的模块;向导会联网创建
Spring Boot
项目; 默认生成的Spring Boot
项目;
主程序已经生成好了,我们只需要我们自己的逻辑 resources文件夹中目录结构
static
:保存所有的静态资源;
js css images
;
templates
:保存所有的模板页面;(
Spring Boot
默认
jar
包使用嵌入式的
Tomcat
,默认不支持
JSP
页面);
可以使用模板引擎(freemarker
、
thymeleaf
);
application.properties
:
Spring Boot
应用的配置文件;可以修改一些默认设置;
![](https://i-blog.csdnimg.cn/blog_migrate/55d1bb0f571d254c82838badffd1e2da.png)