springboot入门详解
1. springboot的作用:
相对一以往的搭建ssm和ssj来说我们搭建一个项目是比较复杂的,有很多配置文件要写,要配置spring核心xml和spring-mvc的核心xml,还有web.xml,这些配置文件配置起来比较复杂,而springboot相对来说就要简单很多了,springboot就是一款搭建服务环境和开发环境的框架,通过springboot可以简化搭建步骤,快速高效的进行开发。
2.springboot使用注解的方式配置bean对象
步骤:
1.新建一个类:
public class JavaConfigTest { @Test public void test()throws Exception{ /** * 1.获取加载配置文件的容器,并将配置文件作为参数放入到容器中 * 2.通过容器获取到bean对象 */ //通过applicationContext容器读取java类的配置文件 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(ApplicationConfig.class); //通过容器拿到bean对象(以字节码文件,反射的方式-MyBean.class) MyBean bean = applicationContext.getBean(MyBean.class); System.out.println(bean); } }
2.使用java类的方式代替以前的xml文件配置,再类上面打上注解@Configuration注解,告诉spring这是一个配置类
3.在方法上面打上注解@Bean,将方法返回的结果实例,配置为bean对象
4.还可以使用扫描IOC组件的方式 ,在要配置为bean的类上面打上@componet,@service,@controller,@repository注解,再在配置类上面打上@componetScan
这样在启动spring容器的时候,会加载配置类,根据注解读取扫描组件后,spring就知道要把对应的类配置为bean对象了
@Configuration public class ApplicationConfig { @Bean public MyBean mybean(){ return new MyBean(); } }
3.测试
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = ApplicationConfig.class) public class JavaConfigTest { @Autowired private MyBean myBean; @Test public void test()throws Exception{ System.out.println(myBean); } }
4.springboot搭建web项目
步骤:
1、创建一个项目,
2、配置pom.xml文件
<?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.0.5.RELEASE</version> </parent> <groupId>cn.itsource</groupId> <artifactId>springboot_hello</artifactId> <version>1.0-SNAPSHOT</version> <name>springboot_hello</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> </project>
3.新建一个Example的类
@RestController @EnableAutoConfiguration public class Example { @RequestMapping("/") String home() { return "Hello World!"; } public static void main(String[] args) { SpringApplication.run(Example.class, args); } }
4.运行Example中的main方法,启动服务
5.浏览器访问
6springboot的详解:
1.tomcat怎么来的?
内嵌tomcat ->
通过 spring-boot-starter-web -> spring-boot-starter-tomcat 导入了tomcat
2.SpringApplication.run是怎么启动的
用来启动SpringBoot应用 :
①.初始化工作:准备环境,打印baner,创建容器
②.加载项目代码完成自动配置
③. 打包项目到tomcat
④.启动taomcat
3.web.xml,SpirngMvc.xml中的配置去哪儿了?
自动配置
4.spring-boot-starter-parent是干嘛的
是SpringBoot的父工程,管理了很多的基础依赖,如果我们要用里面的依赖,直接导入,不写版本.
5.spring-boot-starter-web是干嘛的
用来集成web(SpringMvc),把web层需要的jar包都给你引入进来了,包括: SpringMvc相关的包,日志相关包,JSON相关包,自动配置包,tomcat包等等
6.@RestController是干嘛的 :
@Controller + @ResponseBody
7.@EnableAutoConfiguration是干嘛
开启自动配置 : 通过一个导入选择器 AutoConfigurationImportSelector 会负责从 spring.factories文件中加载一些自动配置类
比如:前端控制器就通过一个 DispatcherServletAutoConfiguration 自动配置类完成,在这个类里面通过定义bean的方式定义了DispatcherServlet
的实例对象.
8.项目打包方式为什么是Jar
SpringBoot默认打jar包 ,
dependencies : 父工程的dependencies标签下面的jar包会被子模块直接继承使用
dependencyManagement : 申明/管理依赖的 ,父工程的dependencyManagement标签下面的jar包默认子模块是用不了的,
如果只模块要用这个标签里面的jar包得显示的写出来, 这个标签主要用来统一管理jar包的版本号.