发展到今天,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返回的东西要更全面。所以,速度有些慢。



												

最新文章

  1. jquery2源码分析系列
  2. IOS开发UI基础学习-------总结
  3. iOS学习30之UITableView编辑
  4. cf--------(div1)1A. Theatre Square
  5. JBoss部署项目log4j配置会造成死锁问题,浏览器访问一直pending状态
  6. 转载:[Java]读取文件方法大全
  7. [music]&amp;lt;蔷薇&amp;gt;
  8. Android NDK Application.mk(中文翻译)
  9. HQL: The Hibernate Query Language
  10. 服务器四:多进程epoll
  11. 微信小程序之弹出操作菜单
  12. Windows Server 2016-WinSer 2016标准版与数据中心版的区别
  13. Confluence 6 配置白名单
  14. html 之 td valign 和 align
  15. 深入浅出!从语义角度分析隐藏在Unity协程背后的原理
  16. protobuf3 iOS 接入 protobuf
  17. shell脚本变量$#,$*,$$,$@,$0,$1,$2,$?的含义
  18. prop和state的区别
  19. c++ switch语句
  20. vijos p1881 线段树

热门文章

  1. 使用JBolt新建Maven版工程步骤
  2. 保卫&quot;木叶&quot;,从火影剧情看网站攻防的演变
  3. REST SOAP Thrift 对比
  4. 使用 logrotate 清理日志
  5. angular2 ngfor循环
  6. Window服务项目脚手架
  7. my sql无法删除数据库
  8. MQTT研究之EMQ:【JAVA代码构建X509证书】
  9. [ZZ] 用matlab绘制箭头
  10. Maven安装问题