![](https://img-blog.csdnimg.cn/20200715141440479.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
SSMs
文章平均质量分 84
Spring、SpringMVC、MyBatis、SpringBoot、Nginx
鹏哥儿:)
WeChat Offical Account: Yopth
展开
-
【SpringBoot深入浅出】6 - 集成Redis
文章目录12 Redis12.1 spring-data-redis项目简介12.1.1 spring-data-redis项目的设计12 Redis我们来看一下Redis官方中文网站的介绍:简要来说,Redis是NoSQL非关系型数据库的一种,它是以键值对的方式存储的,比如“key1:value1”这样的形式。另外需要注意的是,MySQL这类关系型数据库的存储介质是基于磁盘的,而Redis数据库是基于内存的,基于内存也就有这么两个特性,一是速度快,二是断电易失性。说到Redis的使用场景,就不原创 2020-08-06 21:58:07 · 322 阅读 · 0 评论 -
【SpringBoot深入浅出】5 - SpringBoot的数据库方面
文章目录8 配置数据源8.1 使用Spring默认的数据源8.2 配置自定义数据源——Druid8.3 开启Druid的后台监控功能方式一8.4 开启Druid的后台监控功能方式二8 配置数据源8.1 使用Spring默认的数据源在Maven添加如下依赖 <!-- jdbc启动器 --> <dependency> <groupId>org.springframework.boot</groupId>原创 2020-07-26 09:30:09 · 347 阅读 · 0 评论 -
【SpringBoot深入浅出】4 - 静态资源访问处理
文章目录7 静态资源访问处理7.1 使用SpringBoot提供的四处静态资源访问路径7.2 自定义静态资源访问路径7.3 利用public路径设置首页7 静态资源访问处理7.1 使用SpringBoot提供的四处静态资源访问路径当在/**下访问访问资源时,SpringBoot会从以下四个路径中查找classpath:/META-INF/resources/ resources的子包META-INF的子包resources下classpath:/resources/ resources的子包re原创 2020-07-22 22:11:10 · 120 阅读 · 0 评论 -
【SpringBoot深入浅出】3 -多环境配置和配置文件路径搜索顺序
文章目录5 多环境配置5.1 多环境多配置文件切换5.2 多环境单配置文件切换6 配置文件路径搜索顺序5 多环境配置在开发过程中,至少需要一个生产环境和开发环境,那么,在SpringBoot中如何做到这两个环境之间的互相切换呢?5.1 多环境多配置文件切换首先我们创建两个不同环境的yaml配置文件application-dev.yamlserver: port: 8001application-prod.yamlserver: port: 8002创建主要的yam原创 2020-07-21 22:02:58 · 257 阅读 · 0 评论 -
【SpringBoot深入浅出】2 - YAML语法
3 YAML语法3.1 YAML简介YAML:一种表达数据序列化的标记语言,它有两种全称,用来说明YAML的本质和作用Yet Another Markup Language,“另一种标记语言”,说明了它本质是一种标记语言YAML Ain’t Markup Language,“YAML不是一种标记语言”,强调了这种语言以数据为中心3.2 基础语法3.2.1 语法特点语法特点空格要求严格大小写敏感缩进来表示层级关系3.2.2 注释注释格式:#后接注释内容注意:Y原创 2020-07-19 22:50:05 · 589 阅读 · 0 评论 -
【SpringBoot深入浅出】1 - 初始SpringBoot
文章目录1 SpringBoot简介2 第一个SpringBoot应用2.1 在IDEA创建工程2.2 编写测试用的`HelloController`2.3 测试2.4 自定义banner1 SpringBoot简介SpringBoot能够非常快速、简单地开发独立、生产级别的基于Spring框架的应用程序。SpringBoot内部集成一些默认的第三方库,这样大部分Spring Boot应用只需要非常少的Spring框架配置。SpringBoot采用“约定大于配置”的思想,依赖、服务器等等都提前配置好原创 2020-07-19 19:00:47 · 180 阅读 · 0 评论 -
【SpringMVC从看懂到看开】8 - 拦截器
文章目录13 拦截器13.1 SpringMVC中的拦截器13.2 拦截器的使用13.3 自定义一个拦截器13 拦截器13.1 SpringMVC中的拦截器拦截器 Interceptor 拦截器相当于Servlet中的过滤器,能够对请求进行一些预处理和后期处理。拦截器和过滤器的区别:SpringMVC的拦截器应用了AOP过滤器是Servlet规范的一种,任何JavaWeb应用都可以使用过滤器可以过滤所有请求拦截器是SpringMVC框架的一部分,只能在该框架内使用拦截器只会拦截访问控制原创 2020-07-19 11:16:45 · 137 阅读 · 0 评论 -
【SpringMVC从看懂到看开】7 - SSM整合(完整项目版)
12 SSM整合12.1 数据库mysql> CREATE DATABASE ssmbuild;Query OK, 1 row affected (0.01 sec)mysql> USE ssmbuild;Database changedmysql> CREATE TABLE books( -> book_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT'书ID' -> ,book_name原创 2020-07-18 20:29:55 · 391 阅读 · 0 评论 -
【SpringMVC从看懂到看开】6 - JSON(完整项目版)
文章目录11 JSON11.1 什么是JSON11.2 JSON的组成11.3 JavaScript对象和JSON之间的转换11.411 JSON11.1 什么是JSONJSON,JavaScript Object Notation,JavaScript对象简谱,一般用英文缩写JSON/ˈdʒeɪsən/来表达JSON是一种轻量级的数据交换格式特点轻量(相较于xml)独立于编程语言易于阅读易于机器解析和生成11.2 JSON的组成JSON组成有对象数组字符串数字三原创 2020-07-17 09:51:27 · 140 阅读 · 0 评论 -
【SpringMVC从看懂到看开】5 - 乱码问题
10 处理乱码10.1 乱码问题编写一个控制器@Controllerpublic class EncodingController { @RequestMapping("/ec/t") public String tester(@RequestParam("name")String name, Model model){ model.addAttribute("msg",name); return "e"; }}编写相应的jsp原创 2020-07-16 17:25:38 · 119 阅读 · 0 评论 -
【SpringMVC从看懂到看开】4 - 结果跳转和处理参数
文章目录7 结果跳转7.1 转发7.2 重定向8 从前端获取参数8.1 参数名一致8.2 参数名不一致8.3 接受一个对象9 传递参数到前端9.1 使用Model9.2 使用ModelMap9.3 使用ModelAndView7 结果跳转7.1 转发Spring MVC视图处理器默认是转发 <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResol原创 2020-07-16 17:07:24 · 142 阅读 · 0 评论 -
【SpringMVC从看懂到看开】3 - RESTful风格
6 RESTful风格REST,Representational State Transfer,指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。RESTful风格是Web应用程序的设计风格和开发方式,它不是一种规范,也不是一种标准,你也可以不使用,但使用RESTful风格的软件会变得更加简洁、更有层次、更易于实现缓存机制。6.1 不使用RESTful风格@Controller@RequestMapping(value = "/helloController原创 2020-07-16 13:52:36 · 139 阅读 · 0 评论 -
【SpringMVC从看懂到看开】2 - 控制器和@RequestMapping注解
4 控制器回顾一下Spring MVC的执行图我们知道有后端控制器Controller用来解析用户的请求,并进行相应的业务处理,最后返回一个ModelAndView实现后端控制器Controller的方式有两种,第一种是实现Controller接口,第二种是基于注解@Controller,这两种在上一篇博客【SpringMVC从看懂到看开】 1 - 初识MVC的两个实例程序已经分别提到。5 @RequestMapping注解使用基于注解来实现后端控制器后,我们还需要知道控制器内收对每一个请求是如何原创 2020-07-16 10:49:16 · 245 阅读 · 0 评论 -
【SpringMVC从看懂到看开】 1 - 初识MVC
1. 回顾Servlet建立如下的工程目录1. 导入依赖<!-- servlet依赖 --><dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope>原创 2020-07-16 09:34:20 · 213 阅读 · 0 评论 -
【Spring从入门到出家】6 -声明式事务(完整项目版-整合Mybatis)
11 声明式事务11.1 建立测试环境我们要建立如下的项目结构数据库spring_mybatis,表为usermysql> SELECT * FROM spring_mybatis.user;+---------+-----------+----------+| user_id | user_name | user_pwd |+---------+-----------+----------+| 1 | 张三 | 123456 || 2 |原创 2020-07-15 14:04:33 · 151 阅读 · 0 评论 -
【Spring从入门到出家】5 - 整合MyBatis
10 mybatis-springmybatis-spring官网:http://mybatis.org/spring/zh/index.html这是spring整合mybatis的官网,和mybatis官网有点类似先搭建一下实例在pom.xml中导入依赖 <dependencies> <!-- spring的包 --> <dependency> <groupId>org.sprin原创 2020-07-15 10:07:58 · 124 阅读 · 0 评论 -
【Spring从入门到出家】4 - 静态代理、动态代理再到AOP
7 静态代理代理比较好理解,类似于生活中的房屋中介、经销商、代理商假设没有代理,顾客就可以直接从工厂里面购买东西了很美好,没有中间商赚差价但现实很骨感,工厂在售卖的时候,需要负责接待顾客、展示产品、磋商洽谈等等这些工作,当只有一个顾客的话还有,如果有成千上万个顾客,那我们的工厂一定吃不消了,这个时候自然而然想要把这些重复的工作交给别人来干。Salable接口,可售卖接口public interface Salable { void sale();}Product类,pu原创 2020-07-14 14:41:55 · 138 阅读 · 0 评论 -
【Spring从入门到出家】3 - 使用注解开发和完全Java进行开发
现行主流的开发是以注解为主的5 注解开发<context:annotation-config/>开启注解支持<context:component-scan base-package="com.cap.pojo" />组件扫描,将扫描指定路径下的所有类,类上含有@Component注解的类都会当成一个bean加载进容器@Component的特殊注解(下面这三者注解和@Component是等同的)@Repository:持久层@Service:业务层@Controlle原创 2020-07-13 17:11:08 · 145 阅读 · 0 评论 -
【Spring从入门到出家】2 - 聊聊Bean的作用域和自动装配
文章目录3 Bean的作用域3.1 单例作用域——默认3.2 原型作用域3.3 其他作用域4 自动装配4.1 显式装配4.2 通过byName进行自动装配4.3 通过byType进行自动装配3 Bean的作用域Bean的六种作用域总结3.1 单例作用域——默认单例作用域是Bean定义的默认作用域单例作用域是指一个容器只会创建一次该bean对象实例创建一个User实体类public class User { private int id; private Str原创 2020-07-13 15:30:11 · 123 阅读 · 0 评论 -
【Spring从入门到出家】1 - 从IOC开始
1 什么是IoCIoC即控制反转(Inversion of Control),设计模式的一种,不过出现的比较晚,没有被划分到GoF中。框架的目的就是为了解耦,而IoC作为Spring的基石之一,自然也是为了解耦。那么IoC背后的思想到底是什么呢?一般,我们对象A需要对象B的时候,我们会通过在对象A内部new一个对象B(对象是引用类型,所以可以看成对象A持有对象B的引用)如此一来,对象A对对象B存在依赖,当修改对象B的时候,也需要去修改对象A,这样的依赖关系显然是种累赘,给对象A上了层枷锁。此时,我原创 2020-07-11 15:47:29 · 135 阅读 · 0 评论 -
【MyBatis从入门到入土】8 - 缓存
文章目录13 缓存13.1 缓存简介13.2 MyBatis缓存13.3 一级缓存13.4 二级缓存11.5 缓存机制13 缓存13.1 缓存简介什么是缓存 [ Cache ]?存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。什么样的数据能使用缓存?经常查询并且不经常改变的数据。原创 2020-07-11 12:37:17 · 121 阅读 · 0 评论 -
【MyBatis从入门到入土】7 - 动态SQL
文章目录12 动态SQL12.1 环境搭建12.2 if12.3 where12.4 choose12 动态SQL动态SQL就是可以根据条件动态地添加SQL语句12.1 环境搭建数据库建立测试表Blogmysql> CREATE TABLE blog( -> id VARCHAR(50) NOT NULL COMMENT '博客id', -> title VARCHAR(100) NOT NULL COMMENT '博客标题', -> author原创 2020-07-10 17:36:42 · 159 阅读 · 0 评论 -
【MyBatis从入门到入土】6 - 关联、集合
11 多对一11.1 数据库中创建测试表创建学生表student和教师表teacher,并插入测试数据,在这里学生和老师是多对一的关系:CREATE TABLE `teacher` (`id` INT(10) NOT NULL,`name` VARCHAR(30) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO teacher(`id`, `name`) VALUES (1, '原创 2020-07-08 16:08:49 · 179 阅读 · 0 评论 -
【MyBatis从入门到入土】5 - 使用注解开发
文章目录9 使用注解开发10 小结一下MyBatis的执行流程9 使用注解开发对于一些简单的SQL语句,使用注解可以简化代码比如现在dao只需要一个接口UserMapping,里面有一个方法getUserById(),通过添加注解就可以实现对数据库的操作public interface UserMapping { @Select("SELECT user_id user, user_name name,user_pwd pwd" + " FROM user WHER原创 2020-07-06 16:33:14 · 142 阅读 · 0 评论 -
【MyBatis从入门到入土】4 - 日志和分页
文章目录7 日志7.1 日志工厂7.2 Log4J7 日志7.1 日志工厂我们在【MyBatis从入门到入土】2 - MyBatis配置、生命周期作用域这篇博客中详细讲解了对于mybatis-config.xml中的各项配置,其中在setting项的调整配置中,我们提到了logImpl,但没有深入,这次我们来展开讲解。可以看到MyBatis支持了如下的日志工具SLF4JLOG4J 【掌握】LOG4J2JDK_LOGGINGCOMMONS_LOGGINGSTDOUT_LOGGING【掌握原创 2020-07-05 16:40:52 · 187 阅读 · 0 评论 -
【MyBatis从入门到入土】3 - 字段和属性不一致的问题
6 字段和属性不一致的问题在JDBC中,我们遇到过数据库表名和Java的类的属性不一致问题,接下来我们修改一下项目,重现这个问题:我们知道我们数据库表user字段为:id、name、pwdmysql> SHOW COLUMNS FROM user;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+------原创 2020-07-04 15:08:31 · 184 阅读 · 0 评论 -
【MyBatis从入门到入土】2 - MyBatis配置、生命周期作用域
文章目录MyBtis从入门到入土4 配置解析4.1 核心配置文件4.2 环境配置4.3 属性配置MyBtis从入门到入土4 配置解析在上一篇博客实操的项目中,一开始需要在mybatis-config.xml文件中配置各种信息,这一次我们来深入解析这个配置文件当然,最好的方式是结合MyBatis的官方文档来Configuration4.1 核心配置文件MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下:configuration(配置)原创 2020-07-03 12:14:44 · 218 阅读 · 0 评论 -
【MyBatis从入门到入土】1 - MyBatis入门
文章目录MyBtis从入门到入土0 基础1 简介1.1 什么是Mybatis1.2 持久化1.3 持久层1.4 为什么需要MyBatis2 第一个MyBatis程序2.1 搭建环境2.2 创建一个新模块Modul2.3 编写代码2.4 测试MyBtis从入门到入土0 基础学习MyBtis之前,需要对一下技术有一定的了解:Java基础MysqlJDBC:Java Database ConnectivityMavenJunit1 简介1.1 什么是Mybatis简介Mybatis官原创 2020-07-02 10:57:14 · 280 阅读 · 0 评论 -
泛型方法无法使用Lambda表达式
先说结论,Java中的Lambda是没办法作用在泛型方法上的做个简单的Demo首先创建一个存储接口Storablepublic interface Storable<T> { <V,K> T store();}其次,创建一个Repository类,其中的execute方法将使用到前面的存储接口public class Repository { public <T> String execute(Storable<T> storab原创 2020-08-04 15:26:22 · 2111 阅读 · 1 评论 -
【非Java常用类】1 - UUID类——生成唯一的标识符
【非Java常用类】系列将介绍Java中一些不常见、不常用的类,这些类主要用于特定场景,因此对于该系列博客也可以作为手册使用,需要使用的时候再翻阅即可。文章目录1 UUID的大致结构2 UUID类介绍3 UUID类使用1 UUID的大致结构1. UUID是一个java.util工具包下的一个类2. UUID直接继承java.Object,并且它是不能被继承的(final修饰)3. 实现了Serializable接口,说明它可以被序列化4. 实现了Comparable接口,说明它支持排序2 .原创 2020-07-09 19:54:41 · 520 阅读 · 0 评论 -
JDK1.8新的元注解——@Repeatable
JDK1.8之后添加了一个新的元注解——@Repeatable,对于它的用法,我在网上逛了一圈,很失望,没能解答我的疑惑。这里先引入来自于博客Java注解——Repeatable对于@Repeatable 的用法:首先创建一个APersons注解,再创建一个APerson注解,最后编写一个Man类来作为测试:创建一个APersons注解,里面包含一个Aperson类型的数组@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)原创 2020-07-07 11:38:24 · 462 阅读 · 0 评论 -
在Java中异常的“抓抛”
异常其实是“异常事件”的简写,那么关于异常的定义是:异常是一个事件,它发生在程序的执行过程中,使得程序指令的正常流程中断。异常中的“抓抛”其实只是“捕获异常”和“抛出异常”而已,程序首先会“抛出异常”,然后再去捕获异常,关于两者的作用过程,请看下面的深入分析:什么是抛出异常呢?当一个方法内部发生错误,这个方法会创建一个对象,并将该对象传给运行系统。这个对象称之为“异常对象( exception object )”,它包含错误的信息——错误类型和错误发生时的程序状态。创建一个异常对象并将该对原创 2020-06-10 15:45:32 · 216 阅读 · 0 评论 -
泛型通配符 Generic Wildcards —— ? extends super
Generic Wildcards1. Upper Bounded Wildcards 上限通配符上限通配符 upper bounded Wildcards ? extends Personextends关键字:在上限通配符中,extends关键字是表示通常的意义,它即代表着“继承”(一个类),也代表着“实现”(一个接口)。以下述代码中的List<Person>和List<? extends Person>为例,前者相比受到更多的约束,它只能匹配Person类,而后者原创 2020-05-21 10:23:27 · 194 阅读 · 0 评论 -
JAVA学习手札:文件路径引入为什么有“\\”和“/”的区别
首先,你知道 “\” 和 “/” 怎么读吗?/ 是正斜杠,常用于表示数学中的除号。\ 是反斜杠,表示它和紧跟着它的那个字符构成转义字符,eg. “\n”表示转行(怎么记忆呢?——想象一个“人”字,先撇后捺,撇的为正斜杠 “/” ,捺是反斜杠 “\” )其次,再分清楚一下双正斜杠 “//” 和双反斜杆 “\\”双正斜杠 “//” ,表示注释标记双反斜杆 “\\”,它是一个...原创 2019-10-18 00:56:09 · 21258 阅读 · 0 评论 -
JAVA学习手札:如何使用好JAVA的API手册
今天需要解决的是三个问题:Q1.JAVA 的API手册是什么?Q2.JAVA的API手册有什么?Q3.如何使用API手册?Q1.JAVA 的API规范是什么?A1:我们首先先打开一下在线文档的API:JAVA API中文手册打一个比喻,API手册相当于一本资料参考书,有目录有内容,里面详写了java的类包、类、属性,方法等等。至于为什么叫参考书呢,是因为当你需要查找...原创 2019-10-17 13:45:51 · 814 阅读 · 0 评论 -
【Debugger】解决springboot报错Failed to resolve org.junit.platform:junit-platform-launcher:1.x.x的两种解决方案
在使用SpringBoot测试时如果出现Failed to resolve org.junit.platform:junit-platform-launcher:1.x.x这样的问题,最主要的问题是IntelliJ IDEA版本和junit版本不适配问题,所以最根本的解决方法是将IntelliJ IDEA的版本升级到2020.x.x以上的版本,其次是直接在项目的pom.xml文件中添加如下依赖:<dependency> <groupId>org.junit.platform原创 2020-07-21 07:38:15 · 9417 阅读 · 4 评论