
SpringBoot
༄༊心灵骇客༣
路漫漫其修远兮,吾将上下而求索。
展开
-
SPRING的事务传播特性
事务属性的种类传播行为隔离级别只读事务超时传播行为传播行为定义了被调用方法的事务边界。行为意义PROPERGATION_MANDATORY使用当前的事务,如果当前没有事务,就抛出异常。PROPAGATION_REQUIRED如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。PROPAGATION_SUPPORTS支持当前事务,如果当前没有事务,就以非事务方式执行。PROPAGATION_REQUIRES_NEW新原创 2022-02-06 17:17:55 · 121 阅读 · 0 评论 -
Get和Post请求方法
get方式是通过将数据在url附加数据显性向服务器发送数据。post方式会将数据存放在“请求体”中隐性向服务器发送数据原创 2021-09-14 10:16:42 · 145 阅读 · 0 评论 -
@RequestParam与@PathVariable详解
Request:在访问网站的时候,会发现网站的URL的最后一部分形如:?key=value1&key2=value2,这就是HTTP协议中的Request参数。@RequestParam 和 @PathVariable 注解都可以从request中接收请求参数。@RequestParam :可以轻松的将URL中的参数绑定到处理函数方法的变量中,使用@RequestParam时,URL是这样的:http://host:port/path?参数名=参数值@PathVariable: 绑定它传过来转载 2021-09-11 10:55:50 · 371 阅读 · 0 评论 -
@Repository 与 @Mapper
使用注解的方式开发Dao层的时候,常常会混淆这两个注解@Mapper 是 Mybatis 的注解,@Repository 是 Spring 的注解,用于声明一个 Bean。仅仅使用@Mapper注解,我们会发现,在其他变量中依赖注入,IDEA 会提示错误,但是不影响运行。因为我们没有显式标注这是一个 Bean,IDEA 认为运行的时候会找不到实例注入,所以提示我们错误。使用@Repository 可以消去依赖注入的报错信息。...原创 2021-09-07 09:19:39 · 411 阅读 · 0 评论 -
AOP统一处理web请求日志
引入相关的log4j2和aop的依赖包打印请求和响应信息/** * 描述 打印请求和响应信息 * * @author boyas * @create 2021/9/3 0:19 */@Aspect@Componentpublic class WebLogAspect { //利用log记录真正的内容 private final Logger log = LoggerFactory.getLogger(WebLogAspect.class); /**原创 2021-09-03 01:25:17 · 134 阅读 · 0 评论 -
Log4j2日志
日志级别:error warn info debug trace 级别逐渐向下error:一旦发生error,往往需要人为介入,去排查(例如发生异常,或者连不上数据库,打印出日志)warn : 警告info:作用起到留下一些记录,这些记录在当时或许不是很重要,但是在未来如果发生线上问题,去排查是用的到的(譬如用户的请求和返回)debug:用于自身开发trace:所记录的是非常多且复杂的信息,大部分信息对于业务开发者无用,对于框架开发者有用...原创 2021-09-02 23:58:53 · 158 阅读 · 0 评论 -
springboot入门案例
/**描述:学生实体类 * @author boyas * @create 2021/8/28 17:21 */public class Student { Integer id; String name; @Override public String toString() { return "Student{" + "id=" + id + ", name='" + name + '原创 2021-08-28 18:18:10 · 123 阅读 · 0 评论 -
springboot测试类报空指针异常
最近遇到一个比较奇葩的问题,@RunWith(SpringRunner.class)和@SpringbootTest注解都加入了,然而@Autowired自动注入属性失败报空指针异常,检查了下映射文件和配置文件,都没问题。然后我再运行一次就变成了报这个错了,Invalid bound statement (not found): cn.itsource.springboot.mapper.RoleMapper.findAll初步分析应该是mapper 层的 Mapper 接口与 xml 文件映射出现原创 2021-07-21 21:22:07 · 759 阅读 · 0 评论 -
RBAC --- 权限系统
为什么要做权限?对于我们系统的一些功能只有特定角色用户才能访问。要做权限判断。权限模块是相对独立的一个系统模块,跟业务功能耦合度不高,是一个比较通用的模块。权限分类:登录权限(系统的最基本权限),菜单权限,功能权限(对后台某些接口的权限)。RBAC:基于角色的访问控制。基本思想:对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。这样做的好处是,不必在每次创建用户时都原创 2021-07-21 01:16:01 · 236 阅读 · 0 评论 -
Spring中相关面试题 ----- 持续更新
面试题1:BeanFactory和ApplicationContext的区别联系:ApplicationContext是BeanFactory的子类,它拥有BeanFactory的所有功能,并且更加强大(国际化支持,资源访问,传播)。区别:BeanFactory使用的懒加载策略,当用的时候才创建;ApplicationContext是使用及时加载策略,框架一启动就创建出来。...原创 2021-07-16 14:43:20 · 123 阅读 · 0 评论 -
mybatis中相关面试题 ----- 持续更新
面试题1:#与$的区别$:获取的是传过来的对象的属性/map#:除了获取的是传过来的对象的属性/map,还可以直接获取值#比$强大一点,可以直接拿一个值#比$更加安全,可以防止SQL注入$直接拼接sql字符串,#使用的是预处理的方式(?的方式)能用#用#,除非#不行才用$(排序,分页)面试题2:Mybatis和Jdbc,Jpa/Hibenate联系和区别联系:只要是操作数据库,底层都是jdbc区别:jdbc最底层 优势:运行速度最快 缺点:开发速度最慢Jp原创 2021-07-16 12:56:43 · 127 阅读 · 0 评论 -
谈谈SpringBoot配置文件(一)
1.配置文件SpringBoot使用一个全局的配置文件,配置文件名是固定的;· application.properties· application.yml配置文件的作用:修改SpringBoot自动配置的默认值YAML(YAML Ain’t Markup Language)既是一个标记语言,又不是一个标记语言,是不是很矛盾,总之跟标记语言脱不了关系。标记语言:以前的配置文件大多使用的是xxxx.xml文件;YAML:以数据为中心,比json,xml等更适合做配置文件;YAML:配置例原创 2020-12-02 14:57:50 · 227 阅读 · 0 评论 -
谈谈SpringBoot配置文件(二)
2. YMAL语法1.基本语法k: v:表示一对键值对(k与v之间必须有空格)以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的server: port: 8081 path: /helloport和path就属于一个层级,另外属性和值也是大小写敏感的;2.值的写法字面量:普通的值(数字,字符串,布尔)k: v:字面直接来写:字符串默认不用加上单引号或双引号:“”:双引号;不会转义字符里面的特殊字符;特殊字符会作为本身想要表示的意思例如:name:“zh原创 2020-12-02 15:33:11 · 166 阅读 · 0 评论 -
谈谈SpringBoot配置文件(三)
接下来我们来看看如何进行yaml配置文件值获取可以通过https://start.spring.io/快速建立SpringBoot,并导入maven项目;建立Person类import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;import java.util.Date;import java.util.Li原创 2020-12-02 16:11:01 · 163 阅读 · 0 评论 -
谈谈SpringBoot配置文件(四)
接下来我们来看看如何进行properties配置文件值获取还是引用上篇文章的代码,并将yaml配置文件中的代码注释掉我们来进行properties配置文件值然后去测试,看看properties配置文件中的值是否也能注入到容器中的Person组件测试结果如下:这里我们发现虽然properties配置文件中的值的确获取到了,但是lastName属性值却是中文乱码,这是因为properties文件以前是采用ASCII编码,而idea默认采用utf-8编码方式,因此我们需要将properties文件默原创 2020-12-02 16:42:27 · 151 阅读 · 0 评论 -
谈谈SpringBoot配置文件(五)
@Value获取值和@ConfigurationProperties获取值比较|––原创 2020-12-03 11:07:07 · 124 阅读 · 0 评论 -
谈谈SpringBoot配置文件(六)
@PropertiesSource&ImportResource前面说到过**@ConfigurationProperties**默认从全局配置文件获取值;**@PropertiesSource:**加载指定的配置文件;将application.properties配置文件内容注释掉;**@ImportResource:**Spring的配置文件,让配置文件里面的内容生效;还是在原来的代码基础上新建HelloService类,并创建beans.xml配置文件<?xml versio原创 2020-12-03 14:23:08 · 152 阅读 · 0 评论 -
SpringBoot2.0启动日志中出现The APR based Apache Tomcat Native library which allows optimal performance
启动SpringBoot程序后,日志记录当中有下面一条记录:The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files\Java\jdk1.8.0_191\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system原创 2020-12-15 00:22:08 · 834 阅读 · 0 评论 -
JDK动态代理和CGLIB动态代理
什么是AOP?AOP实际是设计模式的延续,设计模式孜孜不倦所追求的就是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。Aspect是程序设计一个新的中心,AOP并不取代OOP,两者各有各的角色,将职责各自分配给Object与Aspect,会使得程序中各个组件的角色更为清楚。什么是AOP的代理机制?在面试的时候,面试官通常会让你讲讲Spring的AOP,优先讲的肯定是代理机制。代理机制分为静态代理和动态代理我们着重介绍动态代理,静态代理这里不细说(但需要注意:代理对象的一个接口只服原创 2020-11-13 21:56:20 · 146 阅读 · 0 评论 -
面向切面编程AOP_基本概念
·AOP中几个关键的概念·切面一个关注点的模块化,这个关注点可能会横切多个对象。事务管理是J2EE应用中一个关于横切关注点的很好的例子。切面=com.xxx.xxx.xxx包·连接点(Joinpoint):在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候。在SpringAOP中,一个连接点总是表示一个方法的执行。·通知(Advice):在切面的某个特定的连接点上执行的动作。其中包括了“around”,“before”和“after”等不同类型的通知(通知的类型将在后面部分进行讨论)原创 2020-11-14 11:27:10 · 193 阅读 · 0 评论 -
IDEA利用Maven来构建项目+mybatis框架(入门教程)
什么是 MyBatis?MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。1.首先新建一个new Maven项目,不采用任何骨架,直接点击next2.Groupld处填写组织名称test,Artifact原创 2020-10-29 14:21:12 · 419 阅读 · 0 评论