博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Spring Boot】2.HelloWorld应用程序
阅读量:6206 次
发布时间:2019-06-21

本文共 3983 字,大约阅读时间需要 13 分钟。

hot3.png

HelloWorld应用程序

  1. 给maven的settings.xml配置文件的profiles标签添加
jdk‐1.8
true
1.8
1.8
1.8
1.8
  1. 在maven中添加sprig boot相关依赖
org.springframework.boot
spring-boot-starter-parent
1.5.9.RELEASE
org.springframework.boot
spring-boot-starter-web
  1. 编写一个主程序,启动spring boot应用
package com.zhaoyi.hello;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class HelloWorldApplication {    public static void main(String[] args){        SpringApplication.run(HelloWorldApplication.class, args);    }}

程序探究

1、POM文件

1 父项目

org.springframework.boot
spring-boot-starter-parent
1.5.9.RELEASE
]

父项目才真正的管理Spring Boot应用里面的所有依赖版本。

Spring boot的版本仲裁中心: 以后我们导入依赖默认是不需要写版本(没有在dependency里面管理的依赖自然需要声明版本号)

2、导入的依赖

org.springframework.boot
spring-boot-starter-web

1、启动器

spring-boot-starter: spring-boot场景启动器;如spring-boot-starter-web则帮我们导入了web模块需要正常运行所依赖的组件。 参照官方文档我们可以发现,spring-boot-starter-*代表了一系列的功能场景,当你需要什么具体业务需求的时候,将其导入就可以了,比如aop、data-redis、mail、web等。他将所有的功能场景都抽出来,做成一个个的starter(启动器),其先关的业务场景的所有依赖都会导入进来,要用什么功能就导入什么场景的启动器。

2、主程序类

package com.zhaoyi.hello;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class HelloWorldApplication {    public static void main(String[] args){        SpringApplication.run(HelloWorldApplication.class, args);    }}

@SpringBootApplication SB应用标注在某个类上说明这个类是SB的主配置类,SB就应该运行这个类的main方法来启动SB应用。

@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 SB的配置类; 标注在某个类上,表示这个类是SB的配置类。

@Configuration 配置类上来标注这个注解; 配置类就是配置文件;配置类也是容器中的一个组件;@companent

@EnableAutoConfiguration 开启自动配置功能; 以前我们需要在SP中配置的东西,SB帮我们自动配置,通过此配置告诉SB开启自动配置功能。这样,自动配置的功能才能生效。

@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@AutoConfigurationPackage@Import({EnableAutoConfigurationImportSelector.class})public @interface EnableAutoConfiguration {    String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";    Class
[] exclude() default {}; String[] excludeName() default {};}

@AutoConfigurationPackage 自动配置包 SP的底层注解@import,给容器中导入一个组件。 将主配置类(@SpringBottApplication标注的类)所在包及下面所有子包里面的所有组件扫描到SP容器。

@Import({EnableAutoConfigurationImportSelector.class}) 导入哪些组件的选择器;将所有需要导入的组件以全类名的方式返回,这些组件就会被添加到容器中; 会给容器中导入非常多的自动配置类(xxxAutoConfiguration);就是给容器中导入这个场景需要的所有组件,并配置好这些组件。这样就免去了我们手动编写配置注入功能组件等的工作;

SB在启动的时候从类路径下的META-INFO/spring.factories中获取EnableAutoConfiguration指定的值,将这些纸作为自动配置类导入容器中,自动配置类就生效,帮我们进行自动配置工作;以前我们需要自己配置的东西,自动配置类都帮我们做了。

J2EE的整体解决方案和自动配置都在sprig-boot-autoconfigure.jar中了;

使用Spring Initializer快速创建SB项目

IDE都支持使用Spring的项目创建向导; 选择我们需要的模块,向导会联网创建SB项目;

@ResponseBody 这个类的所有方法(或者单个方法——)返回的数据直接写给浏览器。 @ResponseBody写在类上面时,大可以写为@RestController,其等价于@ResponseBody+@Controller;

默认生成的项目

  • 主程序已经生成好了,我们只需关注自己的业务逻辑
  • resounces文件夹中的目录结构
    • static:保存所有的静态资源:js css images;
    • templates:保存所有的模板页面;(SB默认jar包,使用嵌入式页面;可以使用模板引擎——freemarker、thymeleaf)
    • application.properties SB应用的配置文件;SB的一些默认配置可以在这里进行修改。

转载于:https://my.oschina.net/u/3091870/blog/2993889

你可能感兴趣的文章
获取Extjs文本域中的内容
查看>>
RHEL 5基础篇—常见系统启动类故障
查看>>
对‘初学者应该选择哪种编程语言’的回答——计算机达人成长之路(38)
查看>>
Redis-3.2主从复制与集群搭建 推荐
查看>>
随便说说:在ASP.NET应用程序中上传文件
查看>>
【jQuery Demo】图片由下至上逐渐显示
查看>>
merge into ORA-30926
查看>>
在.NET中使用SMTP发送邮件
查看>>
Unity Camera的两种模式
查看>>
3.5. Ticket
查看>>
越狱第一至五季/全集迅雷下载
查看>>
从Mysql slave system lock延迟说开去
查看>>
归并排序
查看>>
RecyclerView的下拉刷新和加载更多 动画
查看>>
ABAP常见面试问题
查看>>
程序猿是如何解决SQLServer占CPU100%的
查看>>
web.xml
查看>>
HBase-1.2.4LruBlockCache实现分析(一)
查看>>
SDN交换机在云计算网络中的应用场景
查看>>
革新以太网交换机架构 全光网络的风刮进园区
查看>>