01-初识springboot

目录

 

01,什么是springboot

02,如何使用springboot


01,什么是springboot

      springboot是一个基于spring框架开发出来的一个新的框架,目的是为了简化spring应用开发,springboot中集成了很多开发所需 要的组件。

02,如何使用springboot

     A:环境准备:这里使用的是本人的环境。

           eclipse

           maven3.3.3

           jdk1.8

          springboot1.5.10

  B:创建一个maven项目

           

       此处需要导入maven项目的父项目,通俗的来说就是springboot版本。本次使用的项目版本springboot1.5.10。需要注意的一点就是springboot2.0及以上需要的jdk环境在1.8版本以上。

 

注:如果在圆圈中的jdk不是我们对应的版本,这是需要我们指定版本,在springboot项目的pom文件中写入:

 <properties>
  	<java.version>1.8</java.version>
  </properties>

C:导入启动器

      springboot根据不同的开发需求提供了不同的启动器。比如用于web开发的启动器,用于email开发的启动器,用于缓存开发的启动器。这些启动器,本质就是一堆架包的集合。

我们点入pom,就会看到一堆架包集合的座标,比如点入web启动器的pom。

本次使用的启动器是

spring-boot-starter-web

在springboot项目中写入web启动器

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

写入好之后,我们更新项目,maven将会自动帮助我们下载开发web所需的jar包。如下图所示。

疑问:为什么启动器不需要写版本号呢?

    之前说过,springboot是一堆jar的集合,而web启动器是springboot用于开发web的一个架包集合,在这个父项目的pom文件中以前将开发web的各种架包版本号确定了,我们无需再写启动器的版本号。下图为点入web启动器的pom文件。

注意1:如果需要将springboot项目打包成一个可编译的jar文件,只需要到springboot项目的pom文件加入一个build就可以了。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

本次就不用打包成一个jar包到本地了,直接在eclipse上运行。

D:编写主程序类(入口类)

       springboot需要我们编写一个主程序类来说明该项目是一个springboot项目。该主程序类需要在类名上添加一个名为@SpringBootApplication,该注解标注该类是springboot的主配置类。

@SpringBootApplication
public class App {
	public static void main(String[] args) {
		SpringApplication.run(App.class, args);
	}
}

       通过给@SpringBootApplication注解,可以在使用spring功能的时候,可以实现自动配置。通过点击进入该注解,该注解内部如下所示:

@Target(ElementType.TYPE)
 @Retention(RetentionPolicy.RUNTIME)
 @Documented @Inherited
 @SpringBootConfiguration
 @EnableAutoConfiguration
 @ComponentScan(excludeFilters = {
    @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), 
    @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) 
public @interface SpringBootApplication {

        我们发现给注解中的实现有很多的注解,例如@SpringBootConfiguration注解表示给类是springboot的配置类,在点入该注解会发现一个注解:@tConfiguration,这个注解就是spring底层的配置类,给注解可以替换spring的配置文件,这也说明了springboot无需配置spring配置文件。

        @EnableAutoConfiguration注解:该注解表示开启自动配置功能。

创建一个springboot项目的时候,我们直接通过开启启动类就可以在浏览器访问项目,在没有配置springMVC,Spring就可以访问控制器,实现这个功能的注解就是@EnableAutoConfiguration。

我们点入该注解:

@AutoConfigurationPackage 
@Import(EnableAutoConfigurationImportSelector.class) 
public @interface EnableAutoConfiguration {

@AutoConfigurationPackage注解:自动配置包,通过该注解,将该主程序类同级或者子包下的类自动配置到spring容器。我们进入该注解:

会发现一个注解@Import(AutoConfifigurationPackages.Registrar.class)该注解是一个spring的底层注解,用来给spring容器导入组件。

E:编写控制器

springboot项目无需配置springmvc就可使用springmvc的功能,之前大致的实现功能已经介绍完毕了。现在直接写一个控制器:

@Controller
public class AppController {
	@ResponseBody
	@RequestMapping("/show")
   public String show(){
	   return "你好!世界";
   }}

之前也有说过,在自动配置时,扫描自动配置包的原理是扫描主程序类同级类或者子包下的类,如果控制器所在位置不满足这个要求,自动配置扫描器将扫描不到该控制器。

F:测试

     在选择主程序类或主程序界面右击>>RUN>>java application启动springboot项目,在浏览器打入访问路径:http://localhost:8080/show

访问结果如下:

G:总结

了解到springboot自动配置和自动配置扫描器的扫描规则!!!!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章