开发环境:Myeclipse2017、JDK1.6、Tomcat7.0。
Myeclipse下使用Maven搭建spring boot项目,详细过程如下:
1. New -> Project... -> Maven Project
2. Next, 选择Use default Workspace location。
3. Next, 选择“maven-archetype-webapp”创建一个webapp目录结构的项目
4. 填Group Id,Artifact Id,和Package(请参考后面的“关键词”),点击“Finish”
GroupId:一般是公司名或组织名。
ArtifactId:一般是project名。
Packaging:打包类型,jar/war/rar/ear/pom等,默认是jar。
Version:版本号,GroupId+ArtifactId+Packaging+Version构成项目的唯一标识。
5. 休息片刻,等待MyEclipse创建项目
创建完成后,文件目录结构如下:
创建完成后,发现index.jsp报错,打开index.jsp,报错如下:
右键项目,build path,AddLibrary...
选择MyEclipse Server Library。
Next后,选择一个Tomcat,Finish。
此时index.jsp已经不报错了,如果我们的pom.xml报错,有小红叉的话,可以选maven,Update Project...,问题解决。
6. (如果不喜欢现在的文件名)修改项目名称和存放路径:项目右键 -> refactor -> rename
7. 添加代码目录:
如果是MyEclipse2017,只需要在Java Build Path -> Libraries 中,把JRE System Library修改为“Workspace default JRE”就可以自动有那些目录了。
添加后,test目录也自动有了,最终的项目目录结构如下:
现在需要搭建spring boot框架,并实现一个HelloWorld的项目,让程序真正运行起来。
一、在pom.xml中引入spring-boot-start-parent,spring官方的叫stater poms,它可以提供dependency management,也就是依赖管理,引入以后在声明其它dependency的时候就不需要version了。
[html] view plain copy
1. <parent>
2. <groupId>org.springframework.boot</groupId>
3. <artifactId>spring-boot-starter-parent</artifactId>
4. <version>1.5.3.RELEASE</version>
5. </parent>
二、需要在pom.xml中引入spring-boot-starter-web,spring官方解释spring-boot-start-web包含了spring webmvc和tomcat等web开发的特性。
[html] view plain copy
1. <dependencies>
2. <dependency>
3. <groupId>org.springframework.boot</groupId>
4. <artifactId>spring-boot-starter-web</artifactId>
5. </dependency>
6. </dependencies>
三、如果我们要直接Main启动spring,那么以下plugin必须要添加,否则是无法启动的。如果使用maven的spring-boot:run的话就不需要此配置。
[html] view plain copy
1. <build>
2. <plugins>
3. <plugin>
4. <groupId>org.springframework.boot</groupId>
5. <artifactId>spring-boot-maven-plugin </artifactId>
6. </plugin>
7. </plugins>
8. </build>
四、下面开始写程序,我们需要一个启动类,然后在启动类声明让spring boot自动给我们配置spring需要的配置,比如:@SpringBootApplication,为了可以尽快让程序跑起来,我们简单写一个通过浏览器访问hello world字样的例子:
[java] view plain copy
1. @RestController
2. @SpringBootApplication
3. public class ExampleSpringBoot {
4. @RequestMapping("/home")
5. String home() {
6. return "Hello World!";
7. }
8.
9. public static void main(String[] args) {
10. class, args);
11. }
12. }
其中@SpringBootApplication声明让spring boot自动给程序进行必要的配置,等价于以默认属性使用@Configuration,@EnableAutoConfiguration和@ComponentScan。
@RestController返回json字符串的数据,直接可以编写RESTFul的接口。
五、运行我们的Application,我们先介绍第一种运行方式。第一种方式特别简单:右键Run As -> Java Application。之后打开浏览器输入地址:http://127.0.0.1:8080/home 就可以看到Hello world!了。
第二种方式右键project – Run as – Maven build – 在Goals里输入spring-boot:run ,然后Apply,最后点击Run。
六、运行报错
启动时报错NoClassDefFoundError: org/apache/juli/logging/LogFactory
参见下面的 解决方法 :
七、完整的pom.xml文件
[html] view plain copy
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/maven-v4_0_0.xsd">
3. <modelVersion>4.0.0</modelVersion>
4. <groupId>com.bocom</groupId>
5. <artifactId>maventest</artifactId>
6. <packaging>war</packaging>
7. <version>0.0.1-SNAPSHOT</version>
8. <!-- 继承父包 -->
9. <parent>
10. <groupId>org.springframework.boot</groupId>
11. <artifactId>spring-boot-starter-parent</artifactId>
12. <version>1.5.3.RELEASE</version>
13. <relativePath></relativePath>
14. </parent>
15. <name>maventest</name>
16. <url>http://maven.apache.org</url>
17. <dependencies>
18. <dependency>
19. <groupId>org.springframework.boot</groupId>
20. <artifactId>spring-boot-starter-web</artifactId>
21. </dependency>
22.
23. <dependency>
24. <groupId>junit</groupId>
25. <artifactId>junit</artifactId>
26. <version>3.8.1</version><!--$NO-MVN-MAN-VER$-->
27. <scope>test</scope>
28. </dependency>
29.
30. <dependency>
31. <groupId>org.apache.tomcat.embed</groupId>
32. <artifactId>tomcat-embed-logging-juli</artifactId>
33. <version>8.0.23</version>
34. </dependency>
35. </dependencies>
36. <build>
37. <finalName>maventest</finalName>
38. <plugins>
39. <plugin>
40. <groupId>org.springframework.boot</groupId>
41. <artifactId>spring-boot-maven-plugin </artifactId>
42. </plugin>
43. </plugins>
44. </build>
45. </project>
至些,我们的Spring boot项目已经搭建完成,并成功的运行了HelloWorld的项目。