Spring Boot简明教程

140151_nZVD_3452433.png

简介

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

官网地址:http://projects.spring.io/spring-boot/

 

搭建spring boot项目

spring boot项目例子已经上传至码云:https://gitee.com/imlichao/SpringBoot-example

 

1、使用maven创建基础spring boot项目

spring boot可以使用Maven或Gradle 进行安装。由于本人对Gradle不是很熟所以在这里只介绍maven的安装方式。

其实我们可以新建一个普通的maven项目,然后通过在pom文件中添加spring boot依赖来创建。

但是maven中给我们提供了很多工程模板,既然提供了这么多的模板我们为什么不用呢,下面的例子将使用maven模板直接创建一个spring boot项目。

# 构建maven项目(项目目录名称与artifactId所指定的名称一致)
mvn archetype:generate -D groupId=pub.imlichao -D artifactId=SpringBoot-example

# 选择模板(4号为基础spring boot模板)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 1052: 4


通过以上命令我们就创建了一个基本的spring boot项目

133249_UboM_3452433.png

当然这个项目为我们搭建好了大部分的结构,当然内容须要我们自己稍作调整才能正常使用。

 

2、调整pom文件

调整spring boot版本

模板中的spring boot版本往往比较落后,我们如果需要使用新的版本则需要在pom文件中进行调整。

在pom.xml文件中修改spring boot版本

 <parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>1.5.7.RELEASE</version>
 </parent>

增加freemaker依赖

本配置不是必要项由于本人习惯于使用freemaker所以在此增加。

<dependencies>
     <!-- 增加freemarker依赖 -->
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-freemarker</artifactId>
     </dependency>
 </dependencies>

去掉不需要的依赖

去掉本次项目不需要的内容,去掉的内容因项目而异

最终调整完的pom文件

<?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>pub.imlichao</groupId>
    <artifactId>SpringBoot-example</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <!-- 继承Spring Boot-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.7.RELEASE</version>
    </parent>

    <dependencies>
        <!-- 增加web项目依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 增加freemarker依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>
    </dependencies>
    <!-- 打包成可执行的jar包 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

 

3、调整配置文件

application.properties配置文件在resources资源目录下。

本例子只需要端口号,所以删除其他配置增加端口号配置。

# Server HTTP port.
server.port=8090

 

4、创建业务代码和页面代码

不知道为什么模板代码是不能够执行的,所以删除模板代码编写自己的测试代码。

业务代码类HelloController 

package pub.imlichao;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {
    @GetMapping(value = "/")
    public String hello(){
        return "/hello";
    }
}

freemaker页面hello.ftl

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>hello world</title>
</head>
<body>
<h1>hello world</h1>
</body>
</html>

 

5、调整后的项目结构

141746_SeVG_3452433.png

 

6、启动执行

"C:\Program Files\Java\jdk1.8.0_65\bin\java" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:58673,suspend=y,server=n -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_65\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_65\jre\lib\rt.jar;D:\workspaces\SpringBoot-example\target\classes;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-web\1.5.7.RELEASE\spring-boot-starter-web-1.5.7.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter\1.5.7.RELEASE\spring-boot-starter-1.5.7.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot\1.5.7.RELEASE\spring-boot-1.5.7.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\1.5.7.RELEASE\spring-boot-autoconfigure-1.5.7.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-logging\1.5.7.RELEASE\spring-boot-starter-logging-1.5.7.RELEASE.jar;C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-classic\1.1.11\logback-classic-1.1.11.jar;C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-core\1.1.11\logback-core-1.1.11.jar;C:\Users\Administrator\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;C:\Users\Administrator\.m2\repository\org\slf4j\jcl-over-slf4j\1.7.25\jcl-over-slf4j-1.7.25.jar;C:\Users\Administrator\.m2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;C:\Users\Administrator\.m2\repository\org\slf4j\log4j-over-slf4j\1.7.25\log4j-over-slf4j-1.7.25.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-core\4.3.11.RELEASE\spring-core-4.3.11.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\yaml\snakeyaml\1.17\snakeyaml-1.17.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\1.5.7.RELEASE\spring-boot-starter-tomcat-1.5.7.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\8.5.20\tomcat-embed-core-8.5.20.jar;C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\8.5.20\tomcat-embed-el-8.5.20.jar;C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\8.5.20\tomcat-embed-websocket-8.5.20.jar;C:\Users\Administrator\.m2\repository\org\hibernate\hibernate-validator\5.3.5.Final\hibernate-validator-5.3.5.Final.jar;C:\Users\Administrator\.m2\repository\javax\validation\validation-api\1.1.0.Final\validation-api-1.1.0.Final.jar;C:\Users\Administrator\.m2\repository\org\jboss\logging\jboss-logging\3.3.1.Final\jboss-logging-3.3.1.Final.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\classmate\1.3.4\classmate-1.3.4.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.8.10\jackson-databind-2.8.10.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.8.0\jackson-annotations-2.8.0.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.8.10\jackson-core-2.8.10.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-web\4.3.11.RELEASE\spring-web-4.3.11.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-aop\4.3.11.RELEASE\spring-aop-4.3.11.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-beans\4.3.11.RELEASE\spring-beans-4.3.11.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-context\4.3.11.RELEASE\spring-context-4.3.11.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-webmvc\4.3.11.RELEASE\spring-webmvc-4.3.11.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-expression\4.3.11.RELEASE\spring-expression-4.3.11.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-freemarker\1.5.7.RELEASE\spring-boot-starter-freemarker-1.5.7.RELEASE.jar;C:\Users\Administrator\.m2\repository\org\freemarker\freemarker\2.3.26-incubating\freemarker-2.3.26-incubating.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-context-support\4.3.11.RELEASE\spring-context-support-4.3.11.RELEASE.jar;D:\Program Files\IntelliJ IDEA Community Edition 2017.1.4\lib\idea_rt.jar" pub.imlichao.App
Connected to the target VM, address: '127.0.0.1:58673', transport: 'socket'

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.7.RELEASE)

2017-09-28 14:18:00.828  INFO 7444 --- [           main] pub.imlichao.App                         : Starting App on 7WLOAFTSGWIIGSD with PID 7444 (D:\workspaces\SpringBoot-example\target\classes started by Administrator in D:\workspaces\SpringBoot-example)
2017-09-28 14:18:00.832  INFO 7444 --- [           main] pub.imlichao.App                         : No active profile set, falling back to default profiles: default
2017-09-28 14:18:00.920  INFO 7444 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@68c72235: startup date [Thu Sep 28 14:18:00 CST 2017]; root of context hierarchy
2017-09-28 14:18:02.739  INFO 7444 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8090 (http)
2017-09-28 14:18:02.757  INFO 7444 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2017-09-28 14:18:02.758  INFO 7444 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.20
2017-09-28 14:18:02.911  INFO 7444 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2017-09-28 14:18:02.912  INFO 7444 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1996 ms
2017-09-28 14:18:03.082  INFO 7444 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
2017-09-28 14:18:03.085  INFO 7444 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2017-09-28 14:18:03.086  INFO 7444 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2017-09-28 14:18:03.086  INFO 7444 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2017-09-28 14:18:03.086  INFO 7444 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2017-09-28 14:18:03.447  INFO 7444 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@68c72235: startup date [Thu Sep 28 14:18:00 CST 2017]; root of context hierarchy
2017-09-28 14:18:03.531  INFO 7444 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/],methods=[GET]}" onto public java.lang.String pub.imlichao.HelloController.hello()
2017-09-28 14:18:03.534  INFO 7444 --- [           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-09-28 14:18:03.535  INFO 7444 --- [           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-09-28 14:18:03.575  INFO 7444 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-09-28 14:18:03.575  INFO 7444 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-09-28 14:18:03.625  INFO 7444 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-09-28 14:18:03.866  INFO 7444 --- [           main] o.s.w.s.v.f.FreeMarkerConfigurer         : ClassTemplateLoader for Spring macros added to FreeMarker configuration
2017-09-28 14:18:04.122  INFO 7444 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2017-09-28 14:18:04.214  INFO 7444 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8090 (http)
2017-09-28 14:18:04.222  INFO 7444 --- [           main] pub.imlichao.App                         : Started App in 3.775 seconds (JVM running for 4.304)

141922_ueJh_3452433.png

项目配置

spring boot项目可以在配置文件中方便的进行项目各项属性的配置。比如上面的例子中就在配置文件中进行了端口号的配置。

默认情况下配置文件会放在resources资源目录下,命名为application.properties。

不同环境下我们可能需要使用不同的配置,那么可以创建多个配置文件并在项目启动时指定要使用的配置文件。例如:配置文件命名为application-test.properties作为测试环境的配置,启动参数增加 --spring.profiles.active=test 。项目就会使用application-test.properties配置文件启动。

下面介绍一些常用的配置,更多配置请参考官方文档:

https://docs.spring.io/spring-boot/docs/1.5.7.RELEASE/reference/htmlsingle/#appendix

server.port=8080 #项目端口号
management.port=8081 #项目管理端口号。不配置时默认与server.port一致。例如使用actuator时就要访问此端口

server.tomcat.max-threads=500 #tomcat最大线程数
server.tomcat.min-spare-threads=25 #tomcat最小线程数
server.tomcat.uri-encoding=UTF-8 #tomcat URI字符编码
server.tomcat.accept-count=100 #tomcat最大等待线程数

server.compression.enabled=true #是否对请求响应进行gzip压缩。
server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json,application/xml #需要压缩的响应类型。

spring.datasource.url=jdbc:mysql://rm-2ze4k2hch0pa4ie75.mysql.rds.aliyuncs.com:3306/mfqy-production?zeroDateTimeBehavior=convertToNull #数据库连接URL
spring.datasource.username=admin #数据库连接用户名
spring.datasource.password=111111 #数据库连接密码
spring.datasource.driverClassName=com.mysql.jdbc.Driver #数据库驱动类名称

spring.jpa.generate-ddl=true #是否使用hibernate hbm2ddl控制数据库
spring.jpa.hibernate.ddl-auto=update #hbm2ddl自动控制数据库类型 (validate | update | create | create-drop)
spring.jpa.showSql=false #是否记录sql日志

 

 

常用注解

@SpringBootApplication

使用此注解相当于同时增加了@Configuration, @EnableAutoConfiguration 和 @ComponentScan三个注解

@SpringBootApplication // 包含了 @Configuration @EnableAutoConfiguration @ComponentScan 三个注解
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

 

@Configuration

此注解声明了当前类是一个java形式的配置文件类。在早期的的项目中常使用XML形式的配置类,在spring boot中我们需要使用这种方式。

两种方式没有实质上的区别只是写法不同而已,掌握规律后我们可以将XML形式的配置文件“翻译”成java形式。

/**
 * HikariCP连接池配置
 */
@Configuration
public class DataSourceConfig {

    private static final Logger logger = LoggerFactory.getLogger(DataSourceConfig.class);

    @Value("${spring.datasource.url}")
    private String dataSourceUrl;

    @Value("${spring.datasource.username}")
    private String user;

    @Value("${spring.datasource.password}")
    private String password;

    @Bean
    public DataSource primaryDataSource() {
        HikariConfig config = new HikariConfig();
        config.setJdbcUrl(dataSourceUrl);
        config.setUsername(user);
        config.setPassword(password);
        config.addDataSourceProperty("cachePrepStmts", "true");
        config.addDataSourceProperty("prepStmtCacheSize", "250");
        config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");

        HikariDataSource ds = new HikariDataSource(config);
        return ds;
    }
}
/**
 * Tomcat 配置
 */
@Configuration
public class TomcatConfig {

    @Bean
    public EmbeddedServletContainerFactory servletContainer() {
        TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
        tomcat.setProtocol("org.apache.coyote.http11.Http11Nio2Protocol");//nio2 异步非阻塞
        return tomcat;
    }

}

 

@EnableAutoConfiguration

这个注释告诉SpringBoot“猜”你将如何想配置Spring,基于你已经添加jar依赖项。如果spring-boot-starter-web已经添加Tomcat和Spring MVC,这个注释自动将假设您正在开发一个web应用程序并添加相应的spring设置。

这样@EnableAutoConfiguration可以从逐层的往下搜索各个加注解的类,例如,你正在编写一个JPA程序(如果你的pom里进行了配置的话),spring会自动去搜索加了@Entity注解的类,并进行调用

 

@ComponentScan 

此注解告诉spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean。

 

@ConfigurationProperties

用于将application配置文件中的参数注入到一个实体类中。
通常我们在需要调用配置文件参数时会通过一个输入流进行读取。
这种方式即占用系统资源又比较麻烦。
例如:

inputStream = ReadApplication.class.getClassLoader().getResourceAsStream(propertiesName);
properties.load(inputStream);
//或者
inputStream = new FileInputStream(file);
properties.load(inputStream);

使用@ConfigurationProperties注解可以方便的将配置文件内容注入到一个实体类中直接使用

例如:

配置文件

spring.datasource.url=jdbc:mysql://rdso30006c33s57oufvfo.mysql.rds.aliyuncs.com:3306/test?&zeroDateTimeBehavior=convertToNull
spring.datasource.username=test
spring.datasource.password=123654

实体类

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix="spring.datasource")
public class SpringDatasourceSettings {

    private String url;
    private String username;
    private String password ;

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

注入并使用

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

@RestController
public class TestEndPoint {

    @Autowired
    SpringDatasourceSettings springDatasourceSettings;

    @RequestMapping(value = "v1.0/test", method = RequestMethod.POST)
    public String test( HttpServletRequest request) {
        System.out.println("openapi test : " + springDatasourceSettings.getUrl());
        System.out.println("openapi test : " + springDatasourceSettings.getUsername());
        System.out.println("openapi test : " + springDatasourceSettings.getPassword());

        return "";
    }
}

 

 

 

转载于:https://my.oschina.net/u/3452433/blog/1547805

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然可以,以下是关于Spring Boot项目的简要教程Spring Boot是一个基于Spring框架的开源框架,用于快速构建Java应用程序和微服务。它提供了许多默认配置和依赖项,使得开发者可以轻松地搭建和配置应用程序。 要开始使用Spring Boot,您需要进行以下步骤: 1. 安装Java:在开始使用Spring Boot之前,您需要在您的计算机上安装Java运行时环境(JRE)或Java开发工具包(JDK)。 2. 下载Spring Boot:您可以从Spring Boot官网(https://spring.io/projects/spring-boot)下载最新版本的Spring Boot。 3. 创建新的Spring Boot项目:在您的IDE中,可以使用Spring Initializr(https://start.spring.io/)创建新的Spring Boot项目。Spring Initializr是一个Web界面,它提供了一个简单的界面,用于生成基于Spring Boot的项目。 4. 添加依赖项:一旦您创建了Spring Boot项目,您需要添加所需的依赖项。在pom.xml文件中,您可以添加所需的依赖项,例如Spring Boot Web依赖项,以启用Web应用程序。 5. 创建控制器:控制器是Spring MVC框架的一部分,它用于处理Web请求和响应。在Spring Boot中,您可以使用@RestController注释创建控制器。 6. 运行应用程序:最后,您可以使用您的IDE或命令行启动应用程序。如果您使用命令行,请运行以下命令:java -jar myproject.jar 这只是一个简单的Spring Boot教程,您可以根据您的需要深入了解Spring Boot并使用更多的功能和配置。希望这有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值