zoukankan      html  css  js  c++  java
  • Springboot(一):入门篇

    什么是spring boot

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发者不再须要定义样板化的配置。

    用我的话来理解。就是spring boot事实上不是什么新的框架,它默认配置了非常多框架的使用方式,就像maven整合了全部的jar包。spring boot整合了全部的框架(不知道这样比喻是否合适)。


    使用spring boot有什么优点

    事实上就是简单、高速、方便。平时假设我们须要搭建一个spring web项目的时候须要怎么做呢?

    1)配置web.xml,载入spring和spring mvc

    2)配置数据库连接、配置spring事务

    3)配置载入配置文件的读取。开启注解

    4)配置日志文件

    ...

    配置完毕之后部署tomcat 调试

    ...

    如今非常流行微服务。假设我这个项目只不过须要发送一个邮件,假设我的项目不过生产一个积分;我都须要这样折腾一遍!

    可是假设使用spring boot呢?

    非常easy,我只只须要非常少的几个配置就能够迅速方便的搭建起来一套web项目或者是构建一个微服务。

    使用sping boot究竟有多爽,用以下这幅图来表达

    下载


    高速入门

    说了那么多,手痒痒的非常,立即来一发试试!

    maven构建项目

    1、訪问http://start.spring.io/

    2、选择构建工具Maven Project、Spring Boot版本号1.3.6以及一些工程基本信息。点击“Switch to the full version.”java版本号选择1.7,可參考下图所看到的:

    springboot1

    3、点击Generate Project下载项目压缩包

    4、解压后。使用eclipse,Import -> Existing Maven Projects -> Next ->选择解压后的文件夹-> Finsh。OK done!

    项目结构介绍

    springboot2

    如上图所看到的,Spring Boot的基础结构共三个文件:

    src/main/java  程序开发以及主程序入口

    src/main/resources 配置文件

    src/test/java  測试程序

     

    另外,spingboot建议的文件夹结果例如以下:

    root package结构:com.example.myproject

    com
      +- example
        +- myproject
          +- Application.java
          |
          +- domain
          |  +- Customer.java
          |  +- CustomerRepository.java
          |
          +- service
          |  +- CustomerService.java
          |
          +- controller
          |  +- CustomerController.java
          |


    1、Application.java 建议放到跟文件夹以下,主要用于做一些框架配置

    2、domain文件夹主要用于实体(Entity)与数据訪问层(Repository)

    3、service 层主要是业务类代码

    4、controller 负责页面訪问控制

     

    採用默认配置能够省去非常多配置。当然也能够依据自己的喜欢来进行更改

    最后。启动Application main方法。至此一个java项目搭建好了!

    引入web模块

    1、pom.xml中加入支持web的模块:

    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
     </dependency>
    pom.xml文件里默认有两个模块:

    spring-boot-starter:核心模块,包含自己主动配置支持、日志和YAML。

    spring-boot-starter-test:測试模块,包含JUnit、Hamcrest、Mockito。

    2、编写controller内容

    @RestController
    public class HelloWorldController {
        @RequestMapping("/hello")
        public String index() {
            return "Hello World";
        }
    }

    @RestController的意思就是controller里面的方法都以json格式输出,不用再写什么jackjson配置的了!

    3、启动主程序,打开浏览器訪问http://localhost:8080/hello,就能够看到效果了。有木有非常easy!

    怎样做单元測试

    打开的src/test/下的測试入口,编写简单的http请求来測试;使用mockmvc进行。利用MockMvcResultHandlers.print()打印出执行结果。

    @RunWith(SpringJUnit4ClassRunner.class)
    @SpringApplicationConfiguration(classes = MockServletContext.class)
    @WebAppConfiguration
    public class HelloWorldControlerTests {
        private MockMvc mvc;
        @Before
        public void setUp() throws Exception {
            mvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build();
        }
        @Test
        public void getHello() throws Exception {
        mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
                    .andExpect(MockMvcResultMatchers.status().isOk())
                    .andDo(MockMvcResultHandlers.print())
                    .andReturn();
        }
    }


    开发环境的调试

    热启动在正常开发项目中已经非经常见了吧。尽管平时开发web项目过程中,修改项目启重新启动总是报错;但springBoot对调试支持非常好,修改之后能够实时生效,须要加入以下的配置:

    复制代码

    <dependencies>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-devtools</artifactId>

            <optional>true</optional>

       </dependency>

    </dependencies>

    <build>

        <plugins>

            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

                <configuration>

                    <fork>true</fork>

                </configuration>

            </plugin>

       </plugins>

    </build>

    复制代码

    该模块在完整的打包环境下执行的时候会被禁用。

    假设你使用java -jar启动应用或者用一个特定的classloader启动,它会觉得这是一个“生产环境”。

    总结

    使用spring boot能够非常方便、高速搭建项目,使我们不用关心框架之间的兼容性,适用版本号等各种问题。我们想使用不论什么东西,只加入一个配置就能够。所以使用sping boot非常适合构建微服务。

    附演示demo地址:https://github.com/ityouknow/spring-boot-starter/tree/master/spring-boot-helloWorld

  • 相关阅读:
    cinder支持nfs快照
    浏览器输入URL到返回页面的全过程
    按需制作最小的本地yum源
    创建可执行bin安装文件
    RPCVersionCapError: Requested message version, 4.17 is incompatible. It needs to be equal in major version and less than or equal in minor version as the specified version cap 4.11.
    惠普IPMI登陆不上
    Linux进程状态——top,ps中看到进程状态D,S,Z的含义
    openstack-neutron基本的网络类型以及分析
    openstack octavia的实现与分析(二)原理,架构与基本流程
    flask上下文流程图
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7272173.html
Copyright © 2011-2022 走看看