springboot初学
首先苦于用ssh、ssm来搭建一个项目,这个基础搭建工作就大概要用半天的功夫才能弄好,想到就头疼,后面听了实验室一位大神的建议,用springboot啊,简单的不止一点点。就顺便学习了下这个神器,果然厉害。
有一次上课,跟同学聊天,他问我web的服务器都部署在哪里了,我说centos啊,部署了好多个,然后对方回复,那你得好好保护你电脑了,如果电脑宕机了,你的linux上的服务器需要全部重新部署了。这个问题的确很严重,搭建一个redis、tomcat、nginx、solr虽然不是太麻烦,但是也需要耗费很多时间,怎么办呢?偶然看到一篇文章:docker。docker可以解决这些问题。
就学习了下docker,果然,用同学的话,什么安装软件什么的,都是浮云。用docker搞定。
今天我们介绍下springboot:
1.springboot是什么?
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
该框架使用了特定的方式(继承starter,约定优先于配置)来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Spring Boot并不是一个框架,从根本上将,它就是一些库的集合,maven或者gradle项目导入相应依赖即可使用Spring Boot,而且无需自行管理这些库的版本。
2、为什么要用springboot?
Spring Boot是为简化Spring项目配置而生,使用它使得jar依赖管理以及应用编译和部署更为简单。Spring Boot提供自动化配置,使用Spring Boot,你只需编写必要的代码和配置必须的属性。
使用Spring Boot,只需20行左右的代码即可生成一个基本的Spring Web应用,并且内置了tomcat,构建的fat Jar包通过Java -jar就可以直接运行。
如下特性使得Spring Boot非常契合微服务的概念,可以结合Spring Boot与Spring Cloud和Docker技术来构建微服务并部署到云端:
- 一个可执行jar即为一个独立服务
- 很容易加载到容器,每个服务可以在自己的容器(例如docker)中运行
- 通过一个脚本就可以实现配置与部署,很适合云端部署,并且自动扩展也更容易
简单而言,即Spring Boot使编码更简单,使配置更简单,使部署更简单,使监控更简单。
优势:项目搭建方便简单快速,省时又省力。
3、springboot项目的创建?
项目创建的方式有两种:
先说一下插件的安装:
这里使用的eclipse最新版Neon,因为之前的版本安装springboot插件失败。所以都是采用最新的,JDK1.8,tomcat9,maven3.9.
关于插件的安装,我们可以可以百度一下网上有很多,这里采用的是直接从eclipse market中查找STS来安装的。
之前安装遇到的问题:使用eclipse luna版本安装了sts后,与maven冲突,直接导致maven不可用。

插件安装好了后,会再导航栏有个绿色的叶子,就是springboot。
接下来就是如何搭建一个springboot项目了:
(1)使用springboot来搭建:



完成后:

这个是自动生成的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>com.mydemo.springboot</groupId>
<artifactId>mydemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>mydemo</name>
<description>Demo project for Spring Boot</description> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.8.RELEASE</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-web</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> </project>
以上是第一种方式创建pringboot项目。
(2)首先创建一个maven项目,然后在pom文件中添加springboot依赖即可。直接将上面的pom文件拷贝一份即可。
需要注意点 问题:搭建项目的时候,项目的入口包必须是父包,其下面的controller、service、dao等等都是其下的子包。
否则项目是无法扫描到下面的文件的。

4、springboot与mybatis整合?
之前spring与mybatis整合非常的麻烦,配置文件一堆,这里springboot将这些都集成的非常好,非常简便的就可以整合了。
分几步来进行:
(1)添加springboot与mybatis的jar:

(2)编写配置文件:这里的配置都是在创建项目的时候springboot自带的那个application.properties,名字不能写错,否则会读取不到。

(3)编写mapper.xml和mapper文件:

这里出现的问题:因为sqlMapConfig导致的项目报错:
其实这里面什么都不用配置即可,因为配置都在外面进行了,那为什么还需要这个文件呢,因为我们避免以后还有相关的配置,比如分页等等。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration> </configuration>
注意:配置文件都是放在source文件下面的,这样才可以读取到,否则是不行的。
关于mapper的读取,我们采用@Mapper注解的方式可以读取大mapper文件。



后面的代码编写跟之前一样了。
这就是spring与mybatis的整合。
5、springboot与redis单机版整合?
看到上面的整合,是不是很感慨为什么没有那么早遇到springboot呢。接下来与redis的整合更简单,只需要简简单单的几个注解就OK了。
(1)添加jar包:

这里出现了一个小问题,提示spring-data-redis需要这个jar包,当时maven项目上面有个红色的叹号(注意:以后遇到这个问题可能就是jar包版本的问题)可是当我添加到pom文件中时,项目依然启动错误。
这类问题的解决方案:
找到maven的本地仓库,将提示的jar包从仓库中删除,然后更新项目,获取新的jar包即可解决。
(2)如何使用redis呢:
配置文件中指的redis的ip和端口:



这样redis就可以使用了,是不是非常的简单啊。
以上就是关于springboot的一些使用,简单快捷方便。
最后:除了上面的几个问题,还有一个需要注意,就是在项目的 入口中,

这个配置是必须的,如果不加这个,则下面的一切工作白费,因为这个注解支持自动扫描和注解的功能。
springboot初学的更多相关文章
- 【spring boot】SpringBoot初学(2.1) - properties读取明细
前言 算是对<SpringBoot初学(2) - properties配置和读取>的总结吧. 概念性总结 一.Spring Boot允许外化(externalize)你的配置.可以使用pr ...
- 【spring boot】SpringBoot初学(2) - properties配置和读取
前言 只是简单的properties配置学习,修改部分"约定"改为自定义"配置".真正使用和遇到问题是在细看. 一.主要 核心只是demo中的: @Proper ...
- 【spring boot】SpringBoot初学(7)– 多数据源及其事务
前言 github: https://github.com/vergilyn/SpringBootDemo 代码位置: 参考: Spring Boot Reference Guide , §77.2 ...
- 【spring boot】SpringBoot初学(6)– aop与自定义注解
前言 github: https://github.com/vergilyn/SpringBootDemo 一.AOP 官方demo:https://github.com/spring-project ...
- 【spring boot】SpringBoot初学(5)– WebService之Jersey
前言 github: https://github.com/vergilyn/SpringBootDemo 代码位置: 一.准备 spring boot对jersey1.x与jersey2.x的注入方 ...
- SpringBoot初学(4)– JdbcTemplate和Mybatis
前言 github: https://github.com/vergilyn/SpringBootDemo 代码位置: 一.Spring Boot集成JdbcTemplate或NamedParamet ...
- 【spring boot】SpringBoot初学(1) - Hello World
前言 此文只是记录自己简单学习spring boot的笔记.所以,文章很多只是初步理解,可能存在严重错误. 一.Spring boot的初步理解 1.spring boot的目标 (摘自:spring ...
- 【spring boot】SpringBoot初学(9.1)– 简单配置corsFilter对跨域请求支持
前言 只是简单的配置实现了cors,并没有讲任何东西.(有兴趣的可看: CORS 跨域 实现思路及相关解决方案) github: https://github.com/vergilyn/SpringB ...
- 【spring boot】SpringBoot初学(8)– 简单整合redis
前言 到目前为止,把项目中需要用到的:properties读取.数据源配置.整合mybatis/JdbcTemplate.AOP.WebService.redis.filter.interceptor ...
随机推荐
- Redis 数据结构服务器
Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久 ...
- 油田 (Oil Deposits UVA - 572)
题目描述: 原题:https://vjudge.net/problem/UVA-572 题目思路: 1.图的DFS遍历 2.二重循环找到相邻的八个格子 AC代码: #include <iostr ...
- js如何判断客户端是iOS还是Android等移动终端
判断原理:JavaScript是前端开发的主要语言,我们可以通过编写JavaScript程序来判断浏览器的类型及版本.JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来 ...
- netty in action 笔记 二
netty的数据容器 网络数据的基本单位大多为字节,Java NIO 提供了ByteBuffer 作为它的字节容器,但使用起来过于复杂和繁琐.在Netty中, ByteBuffer 替代品是ByteB ...
- 【MFC】VS2017新建完MFC后,没有界面,只有代码
问题描述:双击.rc文件后提示在另一个编辑器中打开 解决方法整合: 1----- 打开工程之前先把.rc文件改个名称,然后打开工程双击解决方案管理器的.rc文件, 会显示"载入失败" ...
- 《剑指Offer》题四十一~题五十
四十一.数据流中的中位数 题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中 ...
- Thunder——基于NABCD评价“欢迎来怼”团队作品
基于NABCD N——need需求 对于开设了软件工程课并且正在进行教学活动的老师和同学,除了在写作业时会打开电脑进行操作,平时我们更希望可以通过一些简单方便的方法来查看有关作业的内容,比如查看一下老 ...
- UVALive - 6864 Strange Antennas 扫描线
题目链接: http://acm.hust.edu.cn/vjudge/problem/87213 Strange Antennas Time Limit: 3000MS 题意 一个雷达能够辐射到的范 ...
- TCP/IP 三次握手四次挥手
TCP运输连接 TCP连接建立过程中要解决以下三个问题: (1)要使每一方能够确知双方的存在. (2)要允许双方协商一些参数(如最大窗口值.是否使用窗口扩大选项和时间戳选项以及服务质量等). (3)能 ...
- python学习第二天-基本数据类型常用方法
1.直入主题 python中基本的数据类型有 数字(整形,长整形,浮点型,复数) 字符串 字节串:在介绍字符编码时介绍字节bytes类型 列表 元组 字典 集合 下面我们直接将以下面几个点进行学习 # ...