美文网首页spring_boot
01@spring_boot使用

01@spring_boot使用

作者: 冰镇柠檬_tree | 来源:发表于2017-12-20 10:53 被阅读0次

    Spring Boot 优点

    1. 轻量化
    2. 提供 Spring 框架各种默认配置来简化项目配置
    3. 内嵌 Web 容器
    4. 没有冗余代码生成和XML配置要求

    Maven 导包

    • spring-boot-starter:核心模块,包括了自动配置支持、日志和YAML
    • spring-boot-starter-test:测试模块,包括JUnit、Hamcrest、Mockito
    • spring-boot-starter-web:Web模块

    Spring Boot 项目基本由主加载类、逻辑实现类、单元测试类、以及资源配置文件组成。

    一、资源配置文件

    1)Maven项目依赖中引入spring-boot-starter-web,在pom.xml中导入相应的依赖包
    <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.baron</groupId>
      <artifactId>springboot_person</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>war</packaging>
      <name>springboot</name>
      <description>springboot的maven工程</description>
      
       <!-- 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 为Web应用程序添加典型的依赖项-->  
        <dependencies>  
            <dependency>  
                <groupId>org.springframework.boot</groupId>  
                <artifactId>spring-boot-starter-web</artifactId>  
            </dependency>  
        </dependencies>  
      
        <!-- Package as an executable jar 打包成可执行的jar包-->  
        <build>  
            <plugins>  
                <plugin>  
                    <groupId>org.springframework.boot</groupId>  
                    <artifactId>spring-boot-maven-plugin</artifactId>  
                </plugin>  
            </plugins>  
        </build>  
      
        <!-- Add Spring repositories 添加spring的依赖库-->  
        <!-- (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>
    
    2)框架资源的配置

    在src/main/resources下可以创建application.properties文件,将服务器端口写入

    server.port=8081
    

    二、创建主加载类 Application.java

    主加载类是springboot最重要的一个类,是启动程序的入口。

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class Application {
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }
    

    三、创建逻辑实现类 controller

    逻辑实现类就是controller层,是服务接口。

    • @RequestMapping
      – 定义处:提供初步的请求映射信息。相对于 WEB 应用的根目录
      – 方法处:提供进一步的细分映射信息。相对于类定义处的 URL。若
      类定义处未标注 @RequestMapping,则方法处标记的 URL 相对于
      WEB 应用的根目录.

      • DispatcherServlet 截获请求后,就通过控制器上
      • @RequestMapping 提供的映射信息确定请求所对应的处理方法。
      • @RequestMapping 除了可以使用请求 URL 映射请求外,还可以使用请求方法、请求参数及请求头映射请求
    • @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable("xxx") 绑定到操作方法的入参中。

    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @EnableAutoConfiguration
    public class Springweb {
        @RequestMapping("/")
        public String home() {
            return "hello world!";
        }
    
        @RequestMapping("hello/{name}")
        public String index(@PathVariable String name) {
            return "Hello, " + name;
        }
    }
    

    四、程序run运行

    .__           .__  .__                ___.                               
    |  |__   ____ |  | |  |   ____        \_ |__ _____ _______  ____   ____  
    |  |  \_/ __ \|  | |  |  /  _ \        | __ \\__  \\_  __ \/  _ \ /    \ 
    |   Y  \  ___/|  |_|  |_(  <_> )       | \_\ \/ __ \|  | \(  <_> )   |  \
    |___|  /\___  >____/____/\____/   /\   |___  (____  /__|   \____/|___|  /
         \/     \/                    )/       \/     \/                  \/ 
    2017-12-21 13:54:39.527  INFO 11188 --- [           main] com.baron.Application                    : Starting Application on PC-201710141743 with PID 11188 (E:\workspace\springboot_person\target\classes started by Administrator in E:\workspace\springboot_person)
    2017-12-21 13:54:39.531  INFO 11188 --- [           main] com.baron.Application                    : No active profile set, falling back to default profiles: default
    2017-12-21 13:54:39.605  INFO 11188 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@125dc0f: startup date [Thu Dec 21 13:54:39 CST 2017]; root of context hierarchy
    2017-12-21 13:54:41.384  INFO 11188 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
    2017-12-21 13:54:41.400  INFO 11188 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
    2017-12-21 13:54:41.401  INFO 11188 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.4
    2017-12-21 13:54:41.504  INFO 11188 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
    2017-12-21 13:54:41.504  INFO 11188 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1902 ms
    2017-12-21 13:54:41.666  INFO 11188 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
    2017-12-21 13:54:41.673  INFO 11188 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
    2017-12-21 13:54:41.673  INFO 11188 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
    2017-12-21 13:54:41.674  INFO 11188 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
    2017-12-21 13:54:41.674  INFO 11188 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
    2017-12-21 13:54:42.004  INFO 11188 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@125dc0f: startup date [Thu Dec 21 13:54:39 CST 2017]; root of context hierarchy
    2017-12-21 13:54:42.071  INFO 11188 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/hello/{name}]}" onto public java.lang.String com.baron.web.Springweb.index(java.lang.String)
    2017-12-21 13:54:42.072  INFO 11188 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto public java.lang.String com.baron.web.Springweb.home()
    2017-12-21 13:54:42.075  INFO 11188 --- [           main] 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)
    2017-12-21 13:54:42.076  INFO 11188 --- [           main] 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)
    2017-12-21 13:54:42.112  INFO 11188 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2017-12-21 13:54:42.112  INFO 11188 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2017-12-21 13:54:42.152  INFO 11188 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
    2017-12-21 13:54:42.286  INFO 11188 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
    2017-12-21 13:54:42.346  INFO 11188 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
    2017-12-21 13:54:42.350  INFO 11188 --- [           main] com.baron.Application                    : Started Application in 3.35 seconds (JVM running for 3.769)
    

    五、控制面板显示

    在src/main/resources下创建banner.txt文件,里面填写显示的内容。


    image.png
    image.png

    六、页面展示

    image.png image.png

    相关文章

      网友评论

        本文标题:01@spring_boot使用

        本文链接:https://www.haomeiwen.com/subject/koawwxtx.html