Spring Boot 初识

Posted on 2017-09-25 13:43  叶乐乐  阅读(292)  评论(0编辑  收藏  举报

发展到今天,spring已经是一个大家族了,如果想要使用其中的两到三个组件就会有多复杂的配置,有时候还有会版本不一致的错误,让人很无奈。于是,就有了spring Boot,spring  Boot  的创建 就是为了简化spring的配置。用了spring Boot 连web容器都不用配置,spring Boot支持常用的web 容器 Tomcat、Jetty等。 下面我们就来创建一个简单的spring Boot应用。

我用的是Idea,创建步骤就是  File --》New --》project--》spring  Initalizaer  next next next  finish就可以。

spring Boot还对以下NoSql支持,比如redis,MongoDB,Neo4j
spring Boot 对数据库连接的支持有 JPA,Hibernate,Spring JDbc。
spring Boot 还支持 多个数据库连接。

等会系统就会自动生成文件application.properties, 这时候 这个文件是空的。还有FirstSpringBootApplication.java和FirstSpringBootApplicationTests.java。再打开pom.xml 就会发现里面已经注入了一些依赖,External Libraries里也已经自动引入了一些依赖包。我们可以看到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>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>FirstSpringBoot</name>
<description>Demo project for Spring Boot</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.M4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>


</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>

<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>


</project>
这个时候的pom.xml 是不能够满足我们需要的,我们还需要添加一个spring boot对spring web的依赖支持。

<!-- spring -web 的spring boot支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

这个时候,我们需要在application.properties里面添加一些server信息。
server.port= 9696

我们再在FirstSpringBootApplication.java里面添加如下代码。

然后运行main方法,整个服务就启动了。

在浏览器里输入地址localhost:9696

就可以看到控制台打印了 Hello World

这样一个简单的spring Application  就已经开发完成了。

 

这个时候,我们可以查看控制台打印信息,发现默认用的tomcat,如果你想用jetty可以在pom.xml里添加如下依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
就会使用jetty

接下来 我们加入数据库连接,使用Jpa.
我们需要在pom.xml中加入相应的依赖。

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>


首先要在application.properties文件里添加数据库的属性

然后写一个Userwe实体并生成getter和setter方法。

然后写一个接口userDao 继承JpaRepository 里面的代码就可以不用写了

 

再写一个UserAction来测试以下,我们的数据库连接。

然后在浏览器里输入localhost:9696/addUser?username=xx&password=xx

就会看到控制台有打印信息。

再从数据库中查询,就看到这个用户已经插入到数据库中了。

到现在,整个入门案例就完了。有没有发现spring Boot很简单。

补充一点,spring Boot提供自己的测试方法。

我们来看下代码和打印结果,你就知道和以前的junit和Spring Test有什么不同了。(HelloAction 只是打印 Hello World 和返回Hello World)

我们来看下运行结果:

Hello World!

MockHttpServletRequest:
HTTP Method = GET
Request URI = /hello
Parameters = {}
Headers = {Accept=[application/json]}
Body = <no character encoding set>
Session Attrs = {}

Handler:
Type = com.example.demo.HelloAction
Method = public java.lang.String com.example.demo.HelloAction.sayHello()

Async:
Async started = false
Async result = null

Resolved Exception:
Type = null

ModelAndView:
View name = null
View = null
Model = null

FlashMap:
Attributes = null

MockHttpServletResponse:
Status = 200
Error message = null
Headers = {Content-Type=[application/json;charset=ISO-8859-1], Content-Length=[12]}
Content type = application/json;charset=ISO-8859-1
Body = Hello World
Forwarded URL = null
Redirected URL = null
Cookies = []

是不是比我们平常用的Junit返回的东西要更全面。所以,速度有些慢。









Copyright © 2024 叶乐乐
Powered by .NET 8.0 on Kubernetes