欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot开始

程序员文章站 2022-07-13 07:59:50
...

开始

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.

Features

  • Create stand-alone Spring applications
  • Embed Tomcat,Jetty or Undertow directory(no need to deploy WAR files)
  • Automasticclly configure Spring whenever possible
  • Provide production-ready features such as metrics,health checks and externalized configuration
  • Absolutely no code generation and no description of all the features,plus an extensive howto for common user cases.

什么是spring boot

Spring Boot 充分利用了 JavaConfig 的配置模式以及“约定优于配置”的理念,能够极大的简化基于 Spring MVC 的 Web 应用和 REST 服务开发。对于已经熟悉 Spring 生态系统的开发人员来说,Spring Boot 是一个很理想的选择。
Spring Boot提供了很多”开箱即用“的依赖模块,都是以spring-boot-starter-xx作为命名的。下面列举一些常用的模块。

spring的相关模块

Spring Boot提供了很多”开箱即用“的依赖模块,都是以spring-boot-starter-xx作为命名的。下面列举一些常用的模块。

  • spring-boot-starter-logging :使用 Spring Boot 默认的日志框架 Logback。
  • spring-boot-starter-log4j :添加 Log4j 的支持。
  • spring-boot-starter-web :支持 Web 应用开发,包含 Tomcat 和 spring-mvc。
  • spring-boot-starter-tomcat :使用 Spring Boot 默认的 Tomcat 作为应用服务器。
  • spring-boot-starter-jetty :使用 Jetty 而不是默认的 Tomcat 作为应用服务器。
  • spring-boot-starter-test :包含常用的测试所需的依赖,如 JUnit、Hamcrest、Mockito 和 spring-test 等。
  • spring-boot-starter-aop :包含 spring-aop 和 AspectJ 来支持面向切面编程(AOP)。
  • spring-boot-starter-security :包含 spring-security。
  • spring-boot-starter-jdbc :支持使用 JDBC 访问数据库。
  • spring-boot-starter-redis :支持使用 Redis。
  • spring-boot-starter-data-mongodb :包含 spring-data-mongodb 来支持 MongoDB。
  • spring-boot-starter-data-jpa :包含 spring-data-jpa、spring-orm 和 Hibernate 来支持 JPA。
  • spring-boot-starter-amqp :通过 spring-rabbit 支持 AMQP。
  • spring-boot-starter-actuator : 添加适用于生产环境的功能,如性能指标和监测等功能。

Java Config 自动配置

Spring Boot 推荐采用基于 Java Config 的配置方式,而不是传统的 XML。例如,@Configuration、@Bean、@EnableAutoConfiguration、@CompomentScan、@PropertySource、@Repository、@Service、@RestController等。

快速开始

1.新建一个空的maven项目
2.修改pom.xml,添加:

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
    </parent>
    <dependencies>
        <!--开始搭建spring boot应用-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>1.5.3.RELEASE</version>
        </dependency>
        <!--创建web项目要加入的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.5.3.RELEASE</version>
        </dependency>
    </dependencies>

3.新建java demo文件:


package com.cuteximi.go;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * Created by 陶世磊 on 2017/7/2.
 *
 * @Description:
 */
@SpringBootApplication
public class ApplicationDemo {
    public static void main(String[] args) throws Exception{
        System.out.println("SpringApplication Run!");
        SpringApplication.run(ApplicationDemo.class,args);

    }
}

4.新建contorller demo


package com.cuteximi.go;

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;

/**
 * Created by 陶世磊 on 2017/7/2.
 *
 * @Description:
 */
@RestController
@EnableAutoConfiguration
public class RestfulApplicationDemo {
    @RequestMapping("/")
    public  String home(){
        return "Hello Spring Boot Web!";
    }
    @RequestMapping("/hello")
    public String hello(){
        return new String("hello");
    }
    public static void main(String[] args) throws Exception{
        SpringApplication.run(RestfulApplicationDemo.class,args);
    }
}
注解 区别
@RestController 该注解包含@Controller和@ResponseBody,里面的方法无法返回jsp页面
@Controller 配合视图解析器InternalResourceViewResolver使用,返回界面
@ResponseBody 返回JSON,XMl或者自定义的mediaType

结尾附上pom.xml文件的内容:

<?xml version="1.0" encoding="UTF-8"?>
<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>firstSpringBoot</groupId>
    <artifactId>cuteximi</artifactId>
    <version>1.0-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
    </parent>
    <dependencies>
        <!--开始搭建spring boot应用-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>1.5.3.RELEASE</version>
        </dependency>
        <!--创建web项目要加入的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.5.3.RELEASE</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <!--该插件,运行“mvn package”进行打包时,会打包成一个可以直接运行的JAR文件,
            使用java -jar命令就可以直接运行-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

后面

机会是留给有准备的人的!