- 博客(105)
- 问答 (1)
- 收藏
- 关注
原创 按斤称的C++散知识
原子操作(Atomic operations)是在计算机科学中的一种操作,指的是不能被中断、分割或交错执行的操作。在多线程或并发环境中,原子操作是为了防止竞态条件(Race Condition)和数据竞争(Data Race)而设计的。竞态条件指的是多个线程在访问共享资源时的不确定性行为,数据竞争则是多个线程在访问内存位置时引发的未定义行为。原子操作保证了操作的执行是不可分割的,即使在多线程环境下也不会被其他线程的操作干扰。这种操作通常是在硬件级别实现的,使用特定的机器指令或锁机制。
2023-08-18 18:36:46 1018
原创 IDEA2020测试中写主函数报错 Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.0.0:exec (default-cli
解决方法把这个Delegate IDE *** 去掉就可以运行了
2021-01-07 15:39:45 531 1
原创 IDEA 快捷键
多行代码右移Tab多行代码左移Shift+Tab列编辑按住Alt直接拖鼠标Alt+Shift 选中要编辑的地方查找类Ctrl+N
2020-12-29 22:13:33 127
原创 报错: AbstractMethodError: Method com/mchange/v2/c3p0/impl/NewProxyResultSet.isClosed()Z is abstract
修改下我们使用c3p0包就可以了,本来使用的是这个<dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version></dependency>改为下面这个<dependency> <groupId>com.mch.
2020-12-20 14:15:07 146 1
原创 SpringMVC基础--在Controller使用@Autowired注入bean对象为什么注入接口而不是注入实现类
Controller层中使用@Autowired注入TestService接口我们注入的是服务层接口,如下而不是服务层实现类为啥子?AOP的原理是动态代理,有俩种代理可以使用,一种是基于JDK的动态代理,这种是基于实现类的实现,一种是基于Cglib的动态代理,这种是基于子类的实现。JAVA动态代理。我们使用的就是基于JDK的动态代理,如果我们在Controller中注入的是TestServiceImpl而不是TestService,那么事务AOP就不能使用,也就是说没有事务控制,为什么呢?
2020-11-30 20:31:43 1679
原创 Spring Security基础--整合SpringBoot、认证流程分析、配置数据库、整合MyBatis、密码加密、会话授权功能
1.整合优点SpringBoot 可以给我们省去很多的配置文件和工程搭建,快速导入依赖包,并且SpringBoot也是一个市面上常用的框架,可以整合市面上大部分其他框架,使用开发效率很高。2.创建工程我们创建一个空的工程然后引入maven依赖来搭建springboot框架。(1)创建一个空的maven工程,引入依赖。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/
2020-11-07 22:34:59 275
原创 Spring Security基础--快速上手实现认证会话拦截
Spirng-Security基础–基于SpringMVC的Session认证在基于mvc认证的基础上修改简介SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。由于它是Spring生态系统中的一员,因此它伴随着整个Spring生态系统不断修正、升级,在springboot项目中加入springsecurity更是十分简单,使用SpringSecurity减少了为企业系统安全控制编写大量重复代码的工作。创建工程空的Maven工程,如下是
2020-11-05 18:00:47 194
原创 Spirng-Security基础--基于SpringMVC的Session认证
1、Session认证基于session认证的方式的流程是,用户认证成功后,在服务端生成用户相关的数据保存在session,而发送给客户端的session_id存放到cookie中去,这样用客户端请求时带上session_id就可以验证服务器是否存在session数据,以此完成用户的合法校验。当用户退出系统或session过期销毁时,客户端的session_id也就无效了。HttpSession的相关操作API方法含义HttpSession getSession(Boolean c
2020-11-05 17:43:24 479 2
原创 JAVA基础——Lambda表达式
定义多线程的方法当需要启动一个线程去完成任务时,通常会通过java.lang.Runnable接口定义任务内容,并使用java.lang.Thread类来启动线程执行任务。// 实现Runnable接口定义任务内容public class MyRunnable implements Runnable{ @Override public void run() { for (int i=0;i<20;i++) { System.out.prin
2020-11-02 18:30:43 111 1
原创 前端发送POST请求,后端数据收到为null解决方案、@RequestBody注解的详细使用、content-type决定了发送什么类型的数据
前端通过POST请求发送数据,并且通过F12也可查看到具体数据,但后端数据接收到为null的情况。前端是这样发送的数据this.$axios .post('/books', { id: this.form.id, cover: this.form.cover, title: this.form.title, author: this.form.author, dat
2020-10-21 18:19:20 18523 11
原创 JAVA基础--多线程及线程安全案例 等待与唤醒(生产者与 消费者)
等待与唤醒案例综合使用线程的条件对象和同步代码块来实现线程安全。以买卖包子为案例,顾客买包子,有则直接吃,没有包子则需等待制作包子,包子铺中有顾客需要包子并且包子库没包子则需制作,没顾客需要包子不制作包子。很明显有顾客线程以及包子铺线程,通过同步代码块对两个线程实现同步控制。包子类,设置包子的属性BaoZi.javaget、set方法已省略public class BaoZi { private String pi; private String xian; priv
2020-10-18 15:23:17 91
原创 JAVA基础--多线程、线程安全
线程与进程进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程我们可以再电脑底部任务栏,右键----->打开任
2020-10-13 22:22:13 274 1
原创 SpringMVC基础--Spring整合SpringMVC和Mybaits--SSM(保姆级教学)
文章目录SSM整合一、搭建环境1.1创建数据库和表结构1.2创建Maven工程1.3创建子模块并导入坐标1.4创建三层框架1.4.1编写实体类1.4.2编写持久层接口1.4.3编写业务层接口1.4.4编写业务层实现类二、搭建Spring环境2.1创建spring配置文件2.2使用注解配置业务层实现类和持久层2.3测试spring能否独立运行三、搭建SpringMVC环境3.1配置核心控制器3.2编写springmvc配置文件3.3编写controller和jsp页面3.4配置tomcat服务器并测试四、整合
2020-10-09 18:59:48 229
原创 SpringMVC基础--处理器拦截器
Spring MVC 的处理器拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。谈到拦截器,还要向大家提一个词——拦截器链(Interceptor Chain)。拦截器链就是将拦截器按一定的顺 序联结成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。拦截器与过滤器有几分相似,我们来对比下他们:过滤器是 servlet 规范中的一部分,任何 java web 工程都可以使用。拦截器是 SpringMVC 框架自己的,只有使
2020-10-07 12:45:21 143
原创 SpringMVC基础--异常处理器
如果我们程序发生了异常,会按照下面流程执行。把异常显示在浏览器会显得系统十分不完善,我们自定义SpringMVC的异常处理器来显示统一页面给用户提示。在捕获异常时,抛出自定义的异常类@RequestMapping("/exception") public String testException() throws SysException{ try { int a = 10/0; } catch (Exception e) {
2020-10-06 22:24:53 118
原创 SpringMVC基础--上传问文件到服务器
提前配置好spring的前端控制器及视图解析器。传统的java文件上传依赖的jar包<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency> <
2020-10-06 20:40:04 109
原创 JAVA基础--异常的包装技术
适用场景:1、在写一个项目时,越往底层,其抛出的异常越多,父类需要处理这些异常,如果要将每个异常都进行catch捕获太麻烦而且还的考虑异常类子父关系的问题,当然我们也可以直接捕获它们的超类IOException。我们可以自己创建一个异常类,将底层的异常进行封装,统一抛出新建的异常类,在捕获时只捕获该异常即可,也会输出所有的错误信息。2、如果在一个方法中发生了一个检查型异常(就是编译期异常),但这个方法不允许抛出检查型异常,那么包装技术也很有用。我们可以捕获这个检查型异常,并将它包装成一个运行时异常。3
2020-10-06 13:26:18 486
原创 JAVA基础--异常与处理方法
在java程序设计中,异常对象都是派生于Throwable类的一个实例。异常体系结构Throwable体系:Error:严重错误Error,无法通过处理的错误,只能事先避免,好比绝症。Exception:表示异常,异常产生后程序员可以通过代码的方式纠正,使程序继续运行,是必须要处理的。好比感冒、阑尾炎。Exception体系:IOException:处于编译器期的异常需要我们来处理,如日期格式化错误,找不到文件位置。RuntimeException: 处于运行期的异常,JVM会自动进行
2020-10-05 22:49:52 110
原创 SpringMVC基础--请求响应返回值、响应json数据,对json数据的封装和转换
响应返回值在处理请求时,控制器的处理函数返回值类型可以决定其怎么响应该请求。返回值为String类型当返回值为string类型,会根据返回值,到视图解析器指定的路径寻找指定类型的文件显示出来。控制器处理方法@RequestMapping("/hello") public String testJson() { System.out.println("执行了"); return "success"; }视图解析器配置<!-- 配置视图解析器
2020-10-04 21:05:21 386
原创 SpringMVC基础--常用注解-@RequestParam、@RequestBody、@PathVariable、@ModeAttribute
@RequestParam处理请求参数与控制器处理方法形参不一致的问题。下面的请求中,参数名为username<a href="hello?username=mcs">请求<a>而处理函数中形参名为name@RequestMapping("/hello") public String requestParamTest(String name) { System.out.println("username:" +name); retu
2020-10-04 13:59:15 296
原创 SpringMVC基础--请求参数绑定
SpringMVC 绑定请求参数的过程是通过把表单提交请求参数,作为控制器中方法参数进行绑定的。可以传递的类型有很多:基本类型:String、Int类型等。POJO类型:实体类、关联的实体类。数组和集合类型:List和Map集合等。基本类型和String类型作为参数<a href="param/string?username=hehe&password=123">传参</a>--%>处理请求@Controller@RequestMapping("/p
2020-10-03 19:43:36 94
原创 SpringMVC基础--@RequestMapping注解
作用:用于建立请求 URL 和处理请求方法之间的对应关系。可以作用于类或者方法之上,当作用在类上时,相当于该类中所有方法,都得处理请求都得是该作用于类的path下的子路径。属性: /* * 属性: * value和path: 指定请求路径 * method:指定请求方式,通过调用RequestMethod的枚举类型指定(GET、POST等),非该方式的请求不处理 * params: 指定请求参数,key和value的值必须与指定的一样,只要key则要求有该参
2020-10-03 14:23:21 95
原创 SpringMVC基础--入门程序
创建一个maven项目,同时选择webapp模块,首先导入所需的maven坐标导入jar包1、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/
2020-10-03 14:08:46 85
原创 SpringMVC基础--什么是springMVC
基本概念三层体系结构我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就 是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S架构的开发。那么在 B/S架构中,系统标准的三层架构 包括:表现层、业务层、持久层。三层架构在我们的实际开发中使用的非常多,所以我们课程中的案例也都是基于三层架构设计的。 三层架构中,每一层各司其职,接下来我们就说说每层都负责哪些方面:表现层: 也就是我们常说的web层。它负责接收客户端请求,向客户端响应结果
2020-10-03 12:11:58 193
原创 vue+springboot项目部署
Vue项目部署1、压缩项目压缩好后传到服务器上并解压,传输压缩包防止文件损坏。2、安装前端项目依赖npm install --unsafe-perm --registry=https://registry.npm.taobao.org3、打包项目npm run build同时也可以打生产环境包以及运行环境包,如果报错的话,看下自己的package.json文件中是不是没有配置该打包方式。打包完成后会产生一个dist文件夹,将文件夹 复制到上层目录一份,防止丢失。4、配置nginxng
2020-10-02 00:00:31 303
原创 阿里云安全组设置
安全组配置切记!切记!!切记!!!,千万别去网络与安全里设置安全组,网络与安全里设置的安全组时本账户的安全组,要设置本实例的安全组!!!!1、点击ECS2、点击实例3、点击实例ID4、点击本实例安全组5、配置规则6、配置安全组...
2020-09-29 18:26:50 210
原创 Spring基础--完全抛去xml配置文件的spring自带相应式事务控制
前面从XML配置到注解配置,注解配置链接,但注解配置并没有完全抛掉bean.xml配置文件。1、创建主配置文件springConfiguration.java/** spring的配置类,相当于bean.xml* */@Configuration@ComponentScan("org.example") // 配置要扫描的包@Import({jdbcConfiguration.class,transactionConfig.class}) // 导入子配置文件@EnableTransact
2020-09-26 10:04:26 62
原创 Spring基础--基于注解配置的spring自带的声明式事务控制
在原来基于XML配置的基础上进行修改:XML配置的事务控制1、修改持久层实现类在基于XML的配置中,持久层实现类AccountImpl在使用jdbcTemplate是使用其继承的父类JdbcDaoTemplate的方法来获取jdbcTemplate来进行查询,但在注解配置中,我们从容器中导入jdbcTemplate,同时获取数据源。2、将bean.xml配置中对应的配置使用注解修改后的bean.xml<?xml version="1.0" encoding="UTF-8"?>&l
2020-09-26 09:49:52 82
原创 Spring基础--基于XML配置的spring自带的声明式事务控制
前面我们自己编写了连接工具类和事务管理工具类来进行事务控制,自己编写属实有点麻烦,spring给我们提供了事务控制类DataSourceTransactionManager,省去了我们编写的步骤,同时我们使用jdbcTemplate来进行CRUD操作。自定义事务控制:XML配置事务控制我们需要在原来的基础上导入spring-tx坐标<dependency> <groupId>org.springframework</groupId> <
2020-09-24 13:49:47 111
原创 Spring基础--基于XML配置的事务控制
以AOP的方式实现对事务的控制1.用户实体类/** 用户实体类* */public class Account implements Serializable { private Integer id; private String name; private float money; public Integer getId() { return id; } public void setId(Integer id) {
2020-09-23 22:47:17 83
原创 Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test (default-test) on
创建meaven项目运行测试报错解决方式:跳过测试<!--添加配置跳过测试--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version>
2020-09-09 11:36:25 172
原创 Spring基础--基于注解的AOP配置
在使用XML配置过后,修改一下配置,将大部分配置都转换为相关注解即可。基于XML的配置1、将bean.xml文件部分配置转换为注解<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context
2020-09-08 17:10:28 118
原创 Spring基础--AOP
AOP概念在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP优势及作用作用:在程序运行期间不修改源码,对已有方法进行加强优势:减少重复
2020-09-02 22:21:01 86
原创 JAVA基础--动态代理
动态代理的作用:在不修改源码的基础上实现方法的加强。动态代码:特点:字节码随用随创建,随用随加载作用:在不改变源码的基础上,给方法增加功能分类:基于接口的动态代理基于子类的动态代理基于接口的动态代理基于接口的动态代理:涉及的类:Proxy提供者:JDK官方如何创建代理对象: 使用Proxy中的newProxyInstance方法创建代理对象的要求:被代理类至少实现一个接口,如果没有则不能创建newProxyInstance方法的参数: C
2020-08-25 10:22:52 188
原创 Spring基础--基于注解的入门案例
1、创建Maven工程IDEA2020记得选择quickstart导入相关配置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.
2020-08-22 16:14:50 156 1
原创 Spring基础--基于XML配置的入门案例
1、创建Maven工程IDEA2020记得选择quickstart导入相关配置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.
2020-08-22 16:09:26 132
原创 Spring基础--几类常用注入注解
@Component作用:把资源让 spring 来管理。相当于在 xml 中配置一个 bean。属性:value:指定 bean 的 id。如果不指定 value 属性,默认 bean 的 id 是当前类的类名。首字母小写。@Component(“account”)account即为该bean类的id根据Component衍生的三个注解@Controller 、@Service 、@Repository他们三个注解都是针对一个的衍生注解,他们的作用及属性都是一模一样的。 他们只不过是提供
2020-08-21 18:45:43 511
原创 JAVA基础--可变参数
可变参数在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化成如下格式:修饰符 返回值类型 方法名(参数类型... 形参名){ }其实这个书写完全等价与修饰符 返回值类型 方法名(参数类型[] 形参名){ }只是后面这种定义,在调用时必须传递数组,而前者可以直接传递数据即可。JDK1.5以后。出现了简化操作。… 用在参数上,称之为可变参数。同样是代表数组,但是在调用这个带有可变参数的方法时,不用创建数组(这就是简单之处),直接将数组中的元素作
2020-08-19 18:20:24 132 1
空空如也
外网访问centos安装的tomcat端口问题
2020-09-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人