Spring Boot 初级入门教程(一) —— Hello World
2018年05月24日 21:17:38 SpringBoot ⁄ 共 9064字 暂无评论 ⁄ 被围观 902次

初学 Spring Boot,顺便记录下学习中碰到的问题,只针对初学入门需求者。

环境:

  • IDE环境:Spring Tool Suite(Version: 3.7.3.RELEASE)
  • Java环境:jdk1.8.0_172(x64)
  • 依赖环境:Maven(apache-maven-3.3.9)

一、开发环境配置

配置开发环境部分,可以度娘搜索,或者直接参考本博客文章《Maven 的初识、安装和配置》、《单独搭建一套 WEB 开发环境》等文章,这里不再赘述。

二、新建一个Maven项目

File -》 New -》 Other;

找到 Maven 下 Maven Project,一路 Next 按钮。。。

填上 Group Id、Artifact Id,选择 Version,修改 Package,直接 Finish。

三、查看代码目录结构

3.1 自动生成目录结构如下:

3.2 自动生成代码如下:

App.java:

  1. package com.menglanglang.test.springboot;  
  2.   
  3. /** 
  4.  * Hello world! 
  5.  * 
  6.  */  
  7. public class App   
  8. {  
  9.     public static void main( String[] args )  
  10.     {  
  11.         System.out.println( "Hello World!" );  
  12.     }  
  13. }  

AppTest.java 为 junit 自动生成的测试代码,无关紧要。

pom.xml:

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  3.   <modelVersion>4.0.0</modelVersion>  
  4.   
  5.   <groupId>com.menglanglang</groupId>  
  6.   <artifactId>test-springboot</artifactId>  
  7.   <version>0.0.1-SNAPSHOT</version>  
  8.   <packaging>jar</packaging>  
  9.   
  10.   <name>test-springboot</name>  
  11.   <url>http://maven.apache.org</url>  
  12.   
  13.   <properties>  
  14.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  15.   </properties>  
  16.   
  17.   <dependencies>  
  18.     <dependency>  
  19.       <groupId>junit</groupId>  
  20.       <artifactId>junit</artifactId>  
  21.       <version>3.8.1</version>  
  22.       <scope>test</scope>  
  23.     </dependency>  
  24.   </dependencies>  
  25. </project>  

四、补全代码目录结构

由于在项目开发中,有很多静态资源,一般都放在 resources 目录下,所以这里补充两个资源目录。

方法:项目 -》 右键 -》New -》 Source Folder,在 Folder Name 中输入 src/main/resources 和 src/test/resources,补全后代码目录结构如下:

如果此时运行代码:选中 App.java -》 右键 -》 Java Application。

结果为:Hello World!

五、修改代码

pom.xml:

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  3.     <modelVersion>4.0.0</modelVersion>  
  4.   
  5.     <groupId>com.menglanglang</groupId>  
  6.     <artifactId>test-springboot</artifactId>  
  7.     <version>0.0.1-SNAPSHOT</version>  
  8.     <packaging>jar</packaging>  
  9.   
  10.     <name>test-springboot</name>  
  11.     <url>http://blog.csdn.net/tzhuwb</url>  
  12.   
  13.     <properties>  
  14.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  15.     </properties>  
  16.   
  17.     <dependencies>  
  18.         <dependency>  
  19.             <groupId>junit</groupId>  
  20.             <artifactId>junit</artifactId>  
  21.             <version>3.8.1</version>  
  22.             <scope>test</scope>  
  23.         </dependency>  
  24.   
  25.         <!-- 该依赖包提供了MVC、AOP等的依赖包 -->  
  26.         <dependency>  
  27.             <groupId>org.springframework.boot</groupId>  
  28.             <artifactId>spring-boot-starter-web</artifactId>  
  29.             <version>1.4.2.RELEASE</version>  
  30.         </dependency>  
  31.     </dependencies>  
  32.   
  33.     <!-- Add Spring repositories -->  
  34.     <!-- (you don't need this if you are using a .RELEASE version) -->  
  35.     <repositories>  
  36.         <repository>  
  37.             <id>spring-snapshots</id>  
  38.             <url>http://repo.spring.io/snapshot</url>  
  39.             <snapshots>  
  40.                 <enabled>true</enabled>  
  41.             </snapshots>  
  42.         </repository>  
  43.         <repository>  
  44.             <id>spring-milestones</id>  
  45.             <url>http://repo.spring.io/milestone</url>  
  46.         </repository>  
  47.     </repositories>  
  48.     <pluginRepositories>  
  49.         <pluginRepository>  
  50.             <id>spring-snapshots</id>  
  51.             <url>http://repo.spring.io/snapshot</url>  
  52.         </pluginRepository>  
  53.         <pluginRepository>  
  54.             <id>spring-milestones</id>  
  55.             <url>http://repo.spring.io/milestone</url>  
  56.         </pluginRepository>  
  57.     </pluginRepositories>  
  58. </project>  

App.java:

  1. package com.menglanglang.test.springboot;  
  2.   
  3. import org.springframework.boot.SpringApplication;  
  4. import org.springframework.boot.autoconfigure.SpringBootApplication;  
  5.   
  6. /** 
  7.  * @desc 应用入口 
  8.  * 
  9.  * @author 孟郎郎 
  10.  * @blog http://blog.csdn.net/tzhuwb 
  11.  * @version 1.0 
  12.  * @date 2017年11月2日下午6:48:19 
  13.  */  
  14. @SpringBootApplication  
  15. public class App {  
  16.     public static void main(String[] args) {  
  17.         SpringApplication.run(App.class, args);  
  18.         System.out.println("Hello World!");  
  19.     }  
  20. }  

如果此时运行代码:选中 App.java -》 右键 -》 Java Application(或者 Spring Boot App)。

结果为:

  1.   .   ____          _            __ _ _  
  2.  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \  
  3. ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \  
  4.  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )  
  5.   '  |____| .__|_| |_|_| |_\__, | / / / /  
  6.  =========|_|==============|___/=/_/_/_/  
  7.  :: Spring Boot ::        (v1.4.2.RELEASE)  
  8.   
  9. 2018-05-24 21:11:59.093  INFO 13028 --- [  restartedMain] com.menglanglang.test.springboot.App     : Starting App on LangLang-PC with PID 13028 (D:\STS\sts-bundle\workspace\test-springboot\target\classes started by LangLang in D:\STS\sts-bundle\workspace\test-springboot)  
  10. 2018-05-24 21:11:59.095  INFO 13028 --- [  restartedMain] com.menglanglang.test.springboot.App     : No active profile set, falling back to default profiles: default  
  11. 2018-05-24 21:11:59.141  INFO 13028 --- [  restartedMain] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@62128c3a: startup date [Thu May 24 21:11:59 CST 2018]; root of context hierarchy  
  12. 2018-05-24 21:12:00.653  INFO 13028 --- [  restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)  
  13. 2018-05-24 21:12:00.668  INFO 13028 --- [  restartedMain] o.apache.catalina.core.StandardService   : Starting service Tomcat  
  14. 2018-05-24 21:12:00.669  INFO 13028 --- [  restartedMain] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.6  
  15. 2018-05-24 21:12:00.747  INFO 13028 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext  
  16. 2018-05-24 21:12:00.747  INFO 13028 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1610 ms  
  17. 2018-05-24 21:12:00.884  INFO 13028 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]  
  18. 2018-05-24 21:12:00.887  INFO 13028 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]  
  19. 2018-05-24 21:12:00.888  INFO 13028 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]  
  20. 2018-05-24 21:12:00.888  INFO 13028 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]  
  21. 2018-05-24 21:12:00.888  INFO 13028 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]  
  22. 2018-05-24 21:12:01.129  INFO 13028 --- [  restartedMain] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@62128c3a: startup date [Thu May 24 21:11:59 CST 2018]; root of context hierarchy  
  23. 2018-05-24 21:12:01.182  INFO 13028 --- [  restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)  
  24. 2018-05-24 21:12:01.183  INFO 13028 --- [  restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)  
  25. 2018-05-24 21:12:01.207  INFO 13028 --- [  restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]  
  26. 2018-05-24 21:12:01.208  INFO 13028 --- [  restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]  
  27. 2018-05-24 21:12:01.238  INFO 13028 --- [  restartedMain] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]  
  28. 2018-05-24 21:12:01.363  INFO 13028 --- [  restartedMain] o.s.b.d.a.OptionalLiveReloadServer       : LiveReload server is running on port 35729  
  29. 2018-05-24 21:12:01.426  INFO 13028 --- [  restartedMain] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup  
  30. 2018-05-24 21:12:01.473  INFO 13028 --- [  restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)  
  31. 2018-05-24 21:12:01.479  INFO 13028 --- [  restartedMain] com.menglanglang.test.springboot.App     : Started App in 2.81 seconds (JVM running for 3.238)  
  32. Hello World!  

到此,恭喜你,你的第一个 Spring Boot 程序已开发完毕。

原文链接:https://blog.csdn.net/tzhuwb/article/details/80443228

给我留言

留言无头像?