Springboot 入门及Demo

一:SpringBoot入门1.1:SpringBoot简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。听说Springboot可以在140个字符以内发布一个web应用。
1.2:SpringBoot特性
1. SpringBoot并不是对Spring功能上的增强,而是提供了一种快速创建独立的Spring应用程序的框架
2. 嵌入的Tomcat,无需部署WAR文件
3. 简化Maven配置
4. 自动配置Spring
5. 绝对没有代码生成和对XML没有要求配置
6.备受关注,是下一代框架,已经是不争的事实,不需要学习springmvc
7.微服务的入门级微框架,springboot是springcloud的基础

1.3:SpringBoot开发环境准备
1.开发环境JDK1.8 Tomcat7.0(这里不演示配置)
2.开发工具Eclipse或者是Idea
3.项目管理工具Maven

(1.)电脑中配置maven环境
1.下载maven的地址 http://maven.apache.org/download.cgi
2.配置环境变量
3.右键我的电脑==》高级系统设置==》环境变量==》新建环境变量

4.在系统变量中的path中新增maven的bin目录

5.cmd命令运行 mvn -v 测试maven是否安装成功

(2.)Eclipse中配置maven

1.4:SpringBoot之HelloWorld

(1.)Eclipse中创建maven项目

(2.)配置pom文件节点

需要的pom文件!

(3.)创建Controller
在src/main/java下的com.xdf包中创建

(4.)在App.java文件中书写测试代码并运行

启动方式:1.eclipse中直接运行

2.cmd命令进入文件在电脑中的所在位置

01.pushd 项目位置
02.mvn spring-boot:run 即可

(5.)在浏览器中输入访问路径查看效果

1.5:SpringBoot返回json数据
在src/main/java下的com.xdf包中创建

(1.)创建一个实体类对象Student

(2.)在HelloController文件中增加代码

(3.)运行APP.java文件

(4.)在浏览器中输入访问路径查看效果

(5.)返回list集合

(6.)返回set集合

(7.)返回Map集合

1.6:Idea中创建SpringBoot
如果没有Spring Initializr 请看下个内容

不需要配置pom文件,默认pom文件中的节点已经配置和下载了!

配置Spring Initializr

重启IDEA即可

1.7:SpringBoot使用fastjson解析数据
在pom文件中引入fastjson的依赖包

(1.)第一种方式 继承 WebMvcConfigurerAdapter
1.让App这个启动类 继承 WebMvcConfigurerAdapter
2.重写configureMessageConverters()

3.在Student类中增加一个Date类型的字段并且创建对应的set和get

3.修改HelloController中getStudent()

4.运行程序,通过浏览器看效果

5.如果不使用fastjson的效果图

(2.)第二种方式@Bean
其他代码不动,只需要修改App中代码

1.8:fastjson解析数据忽略部分属性

浏览器显示效果

1.9:SpringBoot热部署(springloader)

(1.)pom文件中新增热部署插件

<!-- Spring-boot-devtools 其实配置了这个就不需要下面的所有内容了-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>

<!-- 配置springloader 热部署插件 -->

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

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.4.RELEASE</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
(2.)第一种方式启动

spring-boot:run

如果启动错误如下

解决办法
Window->Preference->Java->Installed JREs->Edit
在Default VM arguments中设置
-Dmaven.multiModuleProjectDirectory=$M2_HOME

(3.)第二种方式启动
需要下载jar包

-javaagent:D:\springloaded-1.2.3.RELEASE.jar -noverify

之后我们再去修改代码或者新增类就不需要重新启动了!

(4.)可能出现的问题
自动编译的功能

1.10:SpringBoot 与 JPA
(1.)基本理论

JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

(2.)实现数据的增删改查
1.在pom文件中引入需要的依赖
<!-- 引入mysql需要的依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 引入spring data jpa需要的依 赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

3.创建resource folder src/main/resource 文件夹
4.创建并配置application.properties文件

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=
spring.datasource.min-idle=5
spring.datasource.initial-size=10

spring.jpa.database=MYSQL
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
5.创建Teacher 实体类

6.创建dao层

7.创建service层

8.创建controller层

9.测试代码 观察效果

(3.)Repository接口

(4.)CrudRepository接口

(5.)PagingAndSortingRepository接口

1.11:SpringBoot JdbcTemplate
(1.)创建TecherDao类

(2.)创建TeacherService类

(3.)创建TeacherController类

(4.)通过浏览器访问即可

1.12:SpringBoot异常处理
针对于1.11的案例,如果我们再浏览器中输入了一个数据库中没有的名字,则会发生异常!而且用户会看到错误信息,显然这是不友好的!所以引入了我们的异常处理!

(1.)创建一个异常处理类MyException

(2.)通过浏览器访问即可

1.13:SpringBoot配置server

(1.)server配置
server.address指定server绑定的地址
server.compression.enabled是否开启压缩,默认为false.
server.compression.excluded-user-agents指定不压缩的user-agent,多个以逗号分隔,默认值为:text/html,text/xml,text/plain,text/css
server.compression.mime-types指定要压缩的MIME type,多个以逗号分隔.
server.compression.min-response-size执行压缩的阈值,默认为2048
server.context-parameters.[param name]设置servlet context 参数
server.context-path设定应用的context-path.
server.display-name设定应用的展示名称,默认: application
server.jsp-servlet.class-name设定编译JSP用的servlet,默认: org.apache.jasper
.servlet.JspServlet)
server.jsp-servlet.init-parameters.[param name]设置JSP servlet 初始化参数.
server.jsp-servlet.registered设定JSP servlet是否注册到内嵌的servlet容器,默认true
server.port设定http监听端口
server.servlet-path设定dispatcher servlet的监听路径,默认为: /
(2.)cookie、session配置
server.session.cookie.comment指定session cookie的comment
server.session.cookie.domain指定session cookie的domain
server.session.cookie.http-only是否开启HttpOnly.
server.session.cookie.max-age设定session cookie的最大age.
server.session.cookie.name设定Session cookie 的名称.
server.session.cookie.path设定session cookie的路径.
server.session.cookie.secure设定session cookie的“Secure” flag.
server.session.persistent重启时是否持久化session,默认false
server.session.timeoutsession的超时时间
server.session.tracking-modes设定Session的追踪模式(cookie, url, ssl).
(3.)ssl配置
server.ssl.ciphers是否支持SSL ciphers.
server.ssl.client-auth设定client authentication是wanted 还是 needed.
server.ssl.enabled是否开启ssl,默认: true
server.ssl.key-alias设定key store中key的别名.
server.ssl.key-password访问key store中key的密码.
server.ssl.key-store设定持有SSL certificate的key store的路径,通常是一个.jks文件.
server.ssl.key-store-password设定访问key store的密码.
server.ssl.key-store-provider设定key store的提供者.
server.ssl.key-store-type设定key store的类型.
server.ssl.protocol使用的SSL协议,默认: TLS
server.ssl.trust-store持有SSL certificates的Trust store.
server.ssl.trust-store-password访问trust store的密码.
server.ssl.trust-store-provider设定trust store的提供者.
server.ssl.trust-store-type指定trust store的类型.
(4.)tomcat
server.tomcat.access-log-enabled是否开启access log ,默认: false)
server.tomcat.access-log-pattern设定access logs的格式,默认: common
server.tomcat.accesslog.directory设定log的目录,默认: logs
server.tomcat.accesslog.enabled是否开启access log,默认: false
server.tomcat.accesslog.pattern设定access logs的格式,默认: common
server.tomcat.accesslog.prefix设定Log 文件的前缀,默认: access_log
server.tomcat.accesslog.suffix设定Log 文件的后缀,默认: .log
server.tomcat.background-processor-delay后台线程方法的Delay大小: 30
server.tomcat.basedir设定Tomcat的base 目录,如果没有指定则使用临时目录.
server.tomcat.internal-proxies设定信任的正则表达式,默认:“10\.\d{1,3}\.\d{1,3}\.\d{1,3}| 192\.168\.\d{1,3}\.\d{1,3}| 169\.254\.\d{1,3}\.\d{1,3}| 127\.\d{1,3}\.\d{1,3}\.\d{1,3}| 172\.1[6-9]{1}\.\d{1,3}\.\d{1,3}| 172\.2[0-9]{1}\.\d{1,3}\.\d{1,3}|172\.3[0-1]{1}\.\d{1,3}\.\d{1,3}”
server.tomcat.max-http-header-size设定http header的最小值,默认: 0
server.tomcat.max-threads设定tomcat的最大工作线程数,默认为: 0
server.tomcat.port-header设定http header使用的,用来覆盖原来port的value.
server.tomcat.protocol-header设定Header包含的协议,通常是 X-Forwarded-Proto,如果remoteIpHeader有值,则将设置为RemoteIpValve.
server.tomcat.protocol-header-https-value设定使用SSL的header的值,默认https.
server.tomcat.remote-ip-header设定remote IP的header,如果remoteIpHeader有值,则设置为RemoteIpValve
server.tomcat.uri-encoding设定URI的解码字符集.
(5.)undertow
server.undertow.access-log-dir设定Undertow access log 的目录,默认: logs
server.undertow.access-log-enabled是否开启access log,默认: false
server.undertow.access-log-pattern设定access logs的格式,默认: common
server.undertow.accesslog.dir设定access log 的目录.
server.undertow.buffer-size设定buffer的大小.
server.undertow.buffers-per-region设定每个region的buffer数
server.undertow.direct-buffers设定堆外内存
server.undertow.io-threads设定I/O线程数.
server.undertow.worker-threads设定工作线程数
(6.)配置端口号和项目路径案例
修改application.properties文件

浏览器中测试

1.14:SpringBoot使用thymeleaf
(1.)pom文件中增加thymeleaf的依赖和版本号

<!-- 添加thymeleaf模版的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

在properties节点中增加,因为thymeleaf 模版需要html页面的所有元素都自身闭合!
3.0之后的版本不在需要!

<thymeleaf.version>3.0.0.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.0.0</thymeleaf-layout-dialect.version>

(2.)application.properties文件中新增thymeleaf配置

# 设置thymeleaf
#spring.thymeleaf.prefix=classpath:/templates/
#spring.thymeleaf.suffix=.html
#spring.thymeleaf.mode=HTML5
#spring.thymeleaf.encoding=UTF-8
#spring.thymeleaf.content-type=text/html
#springboot 官方文档建议我们关闭thymeleaf的缓存
spring.thymeleaf.cache=fasle

(3.)在src/main/resource文件夹下创建templates文件夹
并创建一个hello.html以备后续使用

(4.)创建HelloController书写代码

(5.)书写hello.html页面代码

(6.)浏览器测试

1.15:SpringBoot使用freemarker
(1.)pom文件中增加freemarker的依赖

<!-- 添加freemarker模版的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

(2.)application.properties文件中新增freemarker配置

## Freemarker 配置
spring.freemarker.template-loader-path=classpath:/templates/
spring.freemarker.cache=false
spring.freemarker.charset=UTF-8
spring.freemarker.check-template-location=true
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=false
spring.freemarker.expose-session-attributes=false
spring.freemarker.request-context-attribute=request

下面的配置可供参考

spring.freemarker.allow-request-override=false # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.
spring.freemarker.allow-session-override=false # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.
spring.freemarker.cache=false # Enable template caching.
spring.freemarker.charset=UTF-8 # Template encoding.
spring.freemarker.check-template-location=true # Check that the templates location exists.
spring.freemarker.content-type=text/html # Content-Type value.
spring.freemarker.enabled=true # Enable MVC view resolution for this technology.
spring.freemarker.expose-request-attributes=false # Set whether all request attributes should be added to the model prior to merging with the template.
spring.freemarker.expose-session-attributes=false # Set whether all HttpSession attributes should be added to the model prior to merging with the template.
spring.freemarker.expose-spring-macro-helpers=true # Set whether to expose a RequestContext for use by Spring‘s macro library, under the name "springMacroRequestContext".
spring.freemarker.prefer-file-system-access=true # Prefer file system access for template loading. File system access enables hot detection of template changes.
spring.freemarker.prefix= # Prefix that gets prepended to view names when building a URL.
spring.freemarker.request-context-attribute= # Name of the RequestContext attribute for all views.
spring.freemarker.settings.*= # Well-known FreeMarker keys which will be passed to FreeMarker‘s Configuration.
spring.freemarker.suffix= # Suffix that gets appended to view names when building a URL.
spring.freemarker.template-loader-path=classpath:/templates/ # Comma-separated list of template paths.
spring.freemarker.view-names= # White list of view names that can be resolved.

(3.)在src/main/resource/templates文件夹中创建helloFtl.ftl文件

(4.)创建HelloController书写代码

(5.)浏览器测试

1.16:SpringBoot使用JSP
(1.)创建一个maven web Project

(2.)pom文件中增加依赖包

<!--
配置springboot的父节点依赖,之后引入就不需要添加version配置了!
springboot会自动选择最合适的版本进行添加依赖
-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--指定JDK版本 我们使用的是1.8,不配置默认环境是1.6 -->
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<!-- spring-boot-starter-web是为我们提供了包括mvc,aop等需要的一些jar -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 因为我们已经配置了 parent 中的version 所以这里不需要指定version了 -->
</dependency>

<!-- Spring-boot-devtools -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!-- 配置servlet需要的依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<!-- 配置jstl标签库需要的依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>

<!-- 添加tomcat的支持 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
</dependencies>

(3.)创建一个配置文件 并 配置

(4.)创建一个controller

(5.)在WEB-INF创建jsp文件夹和index.jsp文件

(6.)创建启动类App.java

(7.)浏览器测试

1.17:SpringBoot整合Mybatis
(1.)创建一个maven Project

(2.)引入需要的pom文件节点
<!--
配置springboot的父节点依赖,之后引入就不需要添加version配置了!
springboot会自动选择最合适的版本进行添加依赖
-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--指定JDK版本 我们使用的是1.8,不配置默认环境是1.6 -->
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<!-- spring-boot-starter-web是为我们提供了包括mvc,aop等需要的一些jar -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 因为我们已经配置了 parent 中的version 所以这里不需要指定version了 -->
</dependency>
<!-- Spring-boot-devtools -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>

<!-- 引入mysql需要的依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

<!-- 引入springboot-mybatis的依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- 配置Mybatis分页插件依赖 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.0</version>
</dependency>

</dependencies>

(3.)创建src/main/resource源文件夹和application.properties

(4.)创建Teacher实体类和数据库表

(5.)创建TeacherMapper接口

(6.)创建TeacherService实现类

(7.)创建TeacherController

(8.)创建App启动类

(9.)浏览器运行测试

(10.)分页显示数据创建一个配置文件

比如说现在想页面中只显示一条数据,只需要在controller中增加如下代码!

(11.)新增数据之后想获取id
TeacherMapper中新增

TeacherService中新增

TeacherController中新增

浏览器中测试发现没有id

在TeacherMapper中增加代码

浏览器中测试

原文地址:https://www.cnblogs.com/java-123/p/10410422.html

时间: 2024-10-14 02:20:37

Springboot 入门及Demo的相关文章

SpringBoot 入门 Demo

SpringBoot   入门 Demo Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 特点 1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置

SpringBoot入门示例

SpringBoot入门Demo SpringBoot可以说是Spring的简化版.配置简单.使用方便.主要有以下几种特点: 创建独立的Spring应用程序 嵌入的Tomcat,无需部署WAR文件 简化Maven配置 自动配置Spring 提供生产就绪型功能,如指标,健康检查和外部配置 绝对没有代码生成和对XML没有要求配置 (1)创建maven项目,构建java项目(注意:这里为java项目,也能通过内嵌的tomcat启动服务,访问controller指定路径返回的数据) 项目目录结构如下:

SpringBoot入门(一)——开箱即用

本文来自网易云社区 Spring Boot是什么 从根本上来讲Spring Boot就是一些库的集合,是一个基于"约定优于配置"的原则,快速搭建应用的框架.本质上依然Spring,在这之上帮我们省去了很多样板化的配置,使得我们能够更专注于应用程序功能的开发. Spring Boot精要 SpringBoot将很多魔法带入了Spring应用程序的开发之中,其中最重要的是以下四个核心 自动配置:针对常见的应用功能,SpringBoot自动提供相关的配置,减少用于样板化配置的时间 起步依赖:

SpringBoot入门九,添加shiro支持

项目基本配置参考SpringBoot入门一,使用myEclipse新建一个SpringBoot项目,使用myEclipse新建一个SpringBoot项目即可.现在来给项目添加shiro支持,数据暂时硬编码,不连接数据库,具体内容如下: 1. pom.xml添加以下配置信息 <!-- 开启shiro依赖 --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-s

SpringBoot入门基础

SpringBoot入门 (一) HelloWorld 一 什么是springboot springboot是一个全新的框架,它设计的目的简化spring项目的初始环境的搭建和开发,主要有以下几个特点: 1.简化初始配置 ,可与主流框架集成: 2.内置Servlet容器,无需在打War包: 3.使用了Starter(启动器)管理依赖并版本控制: 4.大量的自动配置,简化开发,方便集成第三方: 5.提供准生产环境运行时的监控,如指标,健康,外部配置等: 6.无需XML配置,减少冗余代码 . 未使用

SpringBoot入门二十,添加Websocket支持

项目基本配置参考SpringBoot入门一,使用myEclipse新建一个SpringBoot项目,使用myEclipse新建一个SpringBoot项目即可.此示例springboot的版本已经升级到2.2.1.RELEASE,具体步骤如下: 1. pom.xml添加以下配置信息 <!-- 4. 引入websocket支持 --> <dependency> <groupId>org.springframework.boot</groupId> <ar

SpringBoot入门二十二,使用Validation进行参数校验

项目基本配置参考文章SpringBoot入门一,使用myEclipse新建一个SpringBoot项目,使用myEclipse新建一个SpringBoot项目即可,此示例springboot升级为2.2.1版本. 1. pom.xml添加aop支持 如果已经引用了spring-boot-starter-web,就不要需要引用spring-boot-starter-validation了,本例就不再引用 <!-- 引入validation支持 --> <dependency> <

spring mvc开发入门实例demo源代码下载,很适合新手入门学习用。

原文:spring mvc开发入门实例demo源代码下载,很适合新手入门学习用. 源代码下载:http://www.zuidaima.com/share/1550463469046784.htm Eclipse + Maven + Spring MVC - Simple Example 源代码框架截图:

java操作memcached入门教程demo代码

原文:java操作memcached入门教程demo代码 源代码下载地址:http://www.zuidaima.com/share/1550463754996736.htm 参考地址: http://www.open-open.com/lib/view/open1357831114183.html http://tech.idv2.com/2008/07/10/memcached-001/ 感谢 京-java牛-ID号1  感谢 锡-SuperPrivate-195 在网上搜索了部分代码,一个