昨天無心間看到Spring Boot ,今天又瞭解了一下,試着寫一個Hello World! 今天看了半天,最後仍是要用Maven最方便!如下:java
1、工具 web
JDK1.7spring
Eclipseapache
Maventomcat
這裏Eclipse集成Maven的這一步就省了!app
2、編碼dom
新建Maven Project 命名爲:SpringBoot 選項如圖maven
二、修改工程目錄,添加源文件夾後目錄以下:ide
三、修改pom.xml文件以下:spring-boot
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.lgp</groupId> <artifactId>SpringBoot</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>SpringBoot</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <!-- Inherit defaults from Spring Boot --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.0.BUILD-SNAPSHOT</version> </parent> <!-- Add typical dependencies for a web application --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <!-- Package as an executable jar --> <build> <plugins> <!-- <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> --> <!-- Maven Assembly Plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.4.1</version> <configuration> <!-- get all project dependencies --> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <!-- MainClass in mainfest make a executable jar --> <archive> <manifest> <mainClass>com.lgp.SpringBoot.App</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <!-- bind to the packaging phase --> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <!-- Add Spring repositories --> <!-- (you don't need this if you are using a .RELEASE version) --> <repositories> <repository> <id>spring-snapshots</id> <url>http://repo.spring.io/snapshot</url> <snapshots><enabled>true</enabled></snapshots> </repository> <repository> <id>spring-milestones</id> <url>http://repo.spring.io/milestone</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <url>http://repo.spring.io/snapshot</url> </pluginRepository> <pluginRepository> <id>spring-milestones</id> <url>http://repo.spring.io/milestone</url> </pluginRepository> </pluginRepositories> </project>
四、編輯JAVA代碼新建APP.class
package com.lgp.SpringBoot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @EnableAutoConfiguration public class App { @RequestMapping("/h") public String home() { return "Hello"; } @RequestMapping("/w") public String word() { return "World"; } public static void main( String[] args ) { System.out.println( "Hello World ! App!" ); SpringApplication.run(App.class, args); //SpringApplication.run(UserController.class, args); } }
運行此代碼 服務端口默認8080 訪問localhost:8080/h 展現Hello
localhost:8080/w 展現World
OK!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
---------------風格線---------------------
新建RestController風格的Controller
新建UserController
package com.lgp.SpringBoot; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @ComponentScan @Configuration @RestController @RequestMapping("/user") public class UserController { @RequestMapping("/{id}") public User getUser(@PathVariable String id){ User user = new User(); user.setId(id); user.setUsername("id==="+Math.random()); return user; } private class User{ private String id; private String username; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } } }
需修改App.java
package com.lgp.SpringBoot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @EnableAutoConfiguration public class App { @RequestMapping("/h") public String home() { return "Hello"; } @RequestMapping("/w") public String word() { return "World"; } public static void main( String[] args ) { System.out.println( "Hello World ! App!" ); //SpringApplication.run(App.class, args); SpringApplication.run(UserController.class, args); } }
運行App.java 訪問 http://localhost:8080/user/12
新建其餘Controller
package com.lgp.SpringBoot; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @ComponentScan @Configuration @RestController @RequestMapping("/file") public class FileController { @RequestMapping("/name") public String getFileName(){ return "filename....."; } }
重啓程序 訪問http://localhost:8080/file/name
======================================================
修改默認端口
1、
package com.lgp.SpringBoot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @SpringBootApplication public class MainApplication implements EmbeddedServletContainerCustomizer{ @Override public void customize(ConfigurableEmbeddedServletContainer container) { container.setPort(8011); } public static void main(String[] args) { // SpringApplication.run(MainApplication.class, args); SpringApplication.run(FileController.class, args); } @RequestMapping("/main") public String testPort(){ return "Hello 端口8011......"; } }
2、
package com.lgp.SpringBoot; import java.util.concurrent.TimeUnit; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; import org.springframework.context.annotation.Bean; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @EnableAutoConfiguration public class App { @RequestMapping("/h") public String home() { return "Hello"; } @RequestMapping("/w") public String word() { return "World"; } public static void main( String[] args ) { System.out.println( "Hello World ! App!" ); //SpringApplication.run(App.class, args); SpringApplication.run(UserController.class, args); } @Bean public EmbeddedServletContainerFactory servletFactory(){ TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory(); tomcatFactory.setPort(8011); tomcatFactory.setSessionTimeout(10,TimeUnit.SECONDS); return tomcatFactory; } }
修改成8011
======================================================