|
|
@@ -26,11 +26,9 @@ What you'll need
|
|
26
|
26
|
----------------
|
|
27
|
27
|
|
|
28
|
28
|
- About 15 minutes
|
|
29
|
|
- - A favorite text editor or IDE
|
|
30
|
|
- - [JDK 6][jdk] or later
|
|
31
|
|
- - [Maven 3.0][mvn] or later
|
|
|
29
|
+ - [macro:prereq-editor-jdk-buildtools]
|
|
32
|
30
|
|
|
33
|
|
-[macro:how-to-complete-this-guide]
|
|
|
31
|
+## [macro:how-to-complete-this-guide]
|
|
34
|
32
|
|
|
35
|
33
|
|
|
36
|
34
|
<a name="scratch"></a>
|
|
|
@@ -39,14 +37,7 @@ Set up the project
|
|
39
|
37
|
|
|
40
|
38
|
[macro:build-system-intro]
|
|
41
|
39
|
|
|
42
|
|
-### Create the directory structure
|
|
43
|
|
-
|
|
44
|
|
-In a project directory of your choosing, create the following subdirectory structure; for example, with `mkdir -p src/main/java/hello` on *nix systems:
|
|
45
|
|
-
|
|
46
|
|
- └── src
|
|
47
|
|
- └── main
|
|
48
|
|
- └── java
|
|
49
|
|
- └── hello
|
|
|
40
|
+[macro:create-directory-structure-hello]
|
|
50
|
41
|
|
|
51
|
42
|
### Create a Maven POM
|
|
52
|
43
|
|
|
|
@@ -227,35 +218,7 @@ The `@ComponentScan` annotation tells Spring to search recursively through the `
|
|
227
|
218
|
|
|
228
|
219
|
The [`@EnableAutoConfiguration`][] annotation switches on reasonable default behaviors based on the content of your classpath. For example, because the application depends on the embeddable version of Tomcat (tomcat-embed-core.jar), a Tomcat server is set up and configured with reasonable defaults on your behalf. And because the application also depends on Spring MVC (spring-webmvc.jar), a Spring MVC [`DispatcherServlet`][] is configured and registered for you — no `web.xml` necessary! Auto-configuration is a powerful, flexible mechanism. See the [API documentation][`@EnableAutoConfiguration`] for further details.
|
|
229
|
220
|
|
|
230
|
|
-### Build an executable JAR
|
|
231
|
|
-
|
|
232
|
|
-Now that your `Application` class is ready, you simply instruct the build system to create a single, executable jar containing everything. This makes it easy to ship, version, and deploy the service as an application throughout the development lifecycle, across different environments, and so forth.
|
|
233
|
|
-
|
|
234
|
|
-Add the following configuration to your existing Maven POM:
|
|
235
|
|
-
|
|
236
|
|
-`pom.xml`
|
|
237
|
|
-```xml
|
|
238
|
|
- <properties>
|
|
239
|
|
- <start-class>hello.Application</start-class>
|
|
240
|
|
- </properties>
|
|
241
|
|
-
|
|
242
|
|
- <build>
|
|
243
|
|
- <plugins>
|
|
244
|
|
- <plugin>
|
|
245
|
|
- <groupId>org.apache.maven.plugins</groupId>
|
|
246
|
|
- <artifactId>maven-shade-plugin</artifactId>
|
|
247
|
|
- </plugin>
|
|
248
|
|
- </plugins>
|
|
249
|
|
- </build>
|
|
250
|
|
-```
|
|
251
|
|
-
|
|
252
|
|
-The `start-class` property tells Maven to create a `META-INF/MANIFEST.MF` file with a `Main-Class: hello.Application` entry. This entry enables you to run the jar with `java -jar`.
|
|
253
|
|
-
|
|
254
|
|
-The [Maven Shade plugin][maven-shade-plugin] extracts classes from all the jars on the classpath and builds a single "über-jar", which makes it more convenient to execute and transport your service.
|
|
255
|
|
-
|
|
256
|
|
-Now run the following to produce a single executable JAR file containing all necessary dependency classes and resources:
|
|
257
|
|
-
|
|
258
|
|
- mvn package
|
|
|
221
|
+### [macro:build-an-executable-jar]
|
|
259
|
222
|
|
|
260
|
223
|
|
|
261
|
224
|
Run the service
|
|
|
@@ -290,9 +253,7 @@ Summary
|
|
290
|
253
|
Congrats! You've just developed a RESTful web service with Spring. This of course is just the beginning, and there are many more features to explore and take advantage of. Be sure to check out Spring's support for [securing](TODO), [describing](TODO) [managing](TODO), [testing](TODO) and [consuming](/gs-consuming-rest) RESTful web services.
|
|
291
|
254
|
|
|
292
|
255
|
|
|
293
|
|
-[mvn]: http://maven.apache.org/download.cgi
|
|
294
|
256
|
[zip]: https://github.com/springframework-meta/gs-rest-service/archive/master.zip
|
|
295
|
|
-[jdk]: http://www.oracle.com/technetwork/java/javase/downloads/index.html
|
|
296
|
257
|
[u-rest]: /understanding/rest
|
|
297
|
258
|
[u-json]: /understanding/json
|
|
298
|
259
|
[u-jsp]: /understanding/jsp
|
|
|
@@ -300,7 +261,6 @@ Congrats! You've just developed a RESTful web service with Spring. This of cours
|
|
300
|
261
|
[u-war]: /understanding/war
|
|
301
|
262
|
[u-tomcat]: /understanding/tomcat
|
|
302
|
263
|
[u-application-context]: /understanding/application-context
|
|
303
|
|
-[maven-shade-plugin]: https://maven.apache.org/plugins/maven-shade-plugin
|
|
304
|
264
|
[`@Controller`]: http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/stereotype/Controller.html
|
|
305
|
265
|
[`SpringApplication`]: http://static.springsource.org/spring-bootstrap/docs/0.5.0.BUILD-SNAPSHOT/javadoc-api/org/springframework/bootstrap/SpringApplication.html
|
|
306
|
266
|
[`@EnableAutoConfiguration`]: http://static.springsource.org/spring-bootstrap/docs/0.5.0.BUILD-SNAPSHOT/javadoc-api/org/springframework/bootstrap/context/annotation/SpringApplication.html
|