运维自学-21-SpringBoot编写Hello World小谈

《0基础自学linux运维-6.15-IDEA 建立简单的spring boot [war方式]》文章中提到了用war方式建立一个hello。

一、从目录结构上分析

目录结构如下:

这个目录结构是因为集成了maven了maven才会变成这样。种目录的作用为:

[Artifact名]Application:这里是DemoApplication,这个是主入口文件,包括有主入口注解@SpringBootApplication

ServletInitializer:因为我使用的是外置的tomcat,所以可以使用JSP。使用外置tomcat必须编写一个SpringBootServletInitializer的子类,并调用configure方法,所以选择war方式会比jar多了一个ServletInitializer 文件。 如果选择jar方式则使用内置tomcat是没有这个文件的

资源resources

1)static:放置静态文件,如html、js、css

2)templates:放模板,如Thymeleaf

3)application.properties:这个文件也可以改用yaml方式,即application.yml,一般建议使用.yml格式。因为是主流配置方式。这个是全局配置文件,具体可以配置哪些可以看官网,这里有一个按照官网的中文解释。

可以配置日志、AOP 切面、国际化(消息源自动配置)、缓存、JMX、数据库、redis、web相关、安全等等

maven配置文件

pom.xml:  要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和licenses,以及其他所有的项目相关因素,是项目级别的配置文件。

二、代码注解简单说明

hello Word主要代码是DemoApplication.java文件,代码如下:

红色部分为添加内容

其中:

@SpringBootApplication:为主入口注解,来标注一个主程序类,说明这是一个Spring Boot应用

@RequestMapping:这个是SpringMVC注解知识,就是做一个请求映射,这个就用讲了吧

@RestController:为@RequestBody+@Controller 两个结起来的意思。默认返回的是json数据。值得注意的是:在进行 @RestController不一定要写在@SpringBootApplication 所在的主入口中, 但是一定要放在与SpringBoot主入口文件同级或下级中,要不运行报错,如下 

HelloController控制器类放在外现,.xxxApplication入口类扫描不到,报错
没有和主入口文件同级或下级,所以报错了

这里随便讲一下@Controller,如果代码中使用的是@Controller的话,那么它就会去找“resources-->templates-->返回值名字的模式文件”,比如改一下代码

2.在此之前需要添加一个模板我这里使用thymeleaf,在pom.xml添加如下内容

            org.springframework.boot

            spring-boot-starter-thymeleaf

 

3.在模拟目录resources/templates建立一个与返回值一样的html文件,我这里是ok.html,内容如下:

ok.html代码

运行效果如下:

三、代码简单的标准化

上面的代码例子可以看出我们都写在主入口文件中了,如果有一堆映射,那不是很乱,所以一般建立建立一个独立的目录放一下,如:

独立写一个控制器类文件出来,把DemoApplication内容清空

还有一些比如类用大驼峰,变量用小驼峰等:

更多的标准、规范见《阿里巴巴Java开发手册(详尽版)》

你可能感兴趣的:(运维自学-21-SpringBoot编写Hello World小谈)