springmvc
Spring与Web环境集成快速入门
创建一个itheima_spring_mvc的modules,并配置webapp文件夹
在pom.xml中导入spring-context坐标
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.6</version></dependency>
在java下新建com.itheima.dao.UserDao的类
package com.itheima.dao;public interface UserDao { public void save();}
在dao下新建UserDaoImpl的实现类,去实现save方法,添加@Repository注解
package com.itheima.dao.impl;import com ...
spring4-事务
编程式事务控制相关对象PlatformTransactionManager
PlatformTransactionManager 接口是 spring 的事务管理器,它里面提供了我们常用的操作事务的方法。
注意:PlatformTransactionManager 是接口类型,不同的 Dao 层技术则有不同的实现类,例如:Dao 层技术是jdbc 或 mybatis 时:org.springframework.jdbc.datasource.DataSourceTransactionManager Dao 层技术是hibernate时:org.springframework.orm.hibernate5.HibernateTransactionManager
TransactionDefinition
TransactionDefinition 是事务的定义信息对象,里面有如下方法:
事务隔离级别
设置隔离级别,可以解决事务并发产生的问题,如脏读、不可重复读和虚读。
ISOLATION_DEFAULT
ISOLATION_R ...
spring3-jdbcTemplate
Spring JdbcTemplate基本使用JdbcTemplate概述它是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和HibernateTemplate,操作nosql数据库的RedisTemplate,操作消息队列的JmsTemplate等等。
JdbcTemplate开发步骤
导入spring-jdbc和spring-tx坐标
创建数据库表和实体
创建JdbcTemplate对象
执行数据库操作
导入spring-jdbc和spring-tx坐标
新建itheima_spring_jdbc的module,并配置webapp文件夹
在pom.xml中,导入spring-jdbc、spring-tx、junit、mysql-connector-java、druid坐标<dependency> <groupId>org.springframework</groupId> <artifactI ...
spring2-aop
Spring的AOP简介什么是 AOP
AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
AOP 是 OOP 的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
AOP 的作用及其优势
作用:在程序运行期间,在不修改源码的情况下对方法进行功能增强
优势:减少重复代码,提高开发效率,并且便于维护
AOP 的底层实现
实际上,AOP 的底层是通过 Spring 提供的的动态代理技术实现的。在运行期间,Spring通过动态代理技术动态的生成代理对象,代理对象方法执行时进行增强功能的介入,在去调用目标对象的方法,从而完成功能的增强。
AOP 的动态代理技术
JDK 代理 : 基于接口的动态代理技术
cglib 代理:基于父类的动态代理技术
AOP 相关概念
Target(目标对象):代理的目标对象
Pr ...
spring-ioc
Spring简介Spring是什么
Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。
提供了展现层 SpringMVC 和持久层 Spring JDBCTemplate 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架。
Spring发展历程Spring的优势
方便解耦,简化开发
通过 Spring 提供的 IoC容器,可以将对象间的依赖关系交由 Spring 进行控制,避免硬编码所造成的过度耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。
AOP编程的支持
通过 Spring的 AOP 功能,方便进行面向切面编程,许多不容易用传统 OOP 实现的功能可以通过 AOP 轻松实现。
声明式事务的支持
可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方 ...
lombok
安装lombok
引入jar包
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> <scope>provided</scope> </dependency>
启用lombok
File => Settings => Build, Execution, Deployment => Compiler => Annotation Processors勾选 Enable annotation processing
安装lombok插件
File => Settings => Plugins, ...
springboot2
springboot集成redis下载redis的windows安装包并安装
下载地址:https://github.com/MicrosoftArchive/redis/releases
安装就一路next,然后找到安装redis的目录,新建start.bat,并写入:redis-server.exe redis.windows.conf
点击start.bat启动(退出redis命令:Ctrl+c)
安装redis客户端Redis Desktop Manager
下载地址: https://pan.baidu.com/s/1Jvr9MbgFn4UJh4M1AMo3gA 提取码:3i9b
安装就一路next,然后先启动redis,然后,打开客户端
代码编写
新建StudentController类,并写入:
package com.dj.app.springboot.web;import com.dj.app.springboot.service.StudentService;import org.springframework.beans.factory.annotation ...
springboot
springboot学习所遇问题springboot项目中,右侧没有mavenproject
输入命令:shift + ctrl + A, 在输入Maven,选择ADD
设置maven镜像
在settings -> Build,Execution,Deployment -> Maven, 找到Maven home directory,打开该目录
找到conf/settings.xml, 在mirrors下写入以下内容:<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> < ...
vue3开发总结
开发环境搭建安装插件
对于Vue 3,您应该使用Vue CLI v4.5(可从上npm获得)@vue/cli。要升级,您需要在@vue/cli全球范围内重新安装最新版本:
yarn global add @vue/cli# ORnpm install -g @vue/cli
创建项目
vue create vue3-typescript
安装设置 1. Please pick a preset: Manually select features2. (*) Choose Vue version (*) Babel (*) TypeScript ( ) Progressive Web App (PWA) Support (*) Router (*) Vuex (*) CSS Pre-processors (*) Linter / Formatter ( ) Unit Testing ( ) E2E Testing3. ? Choose a version of Vue.js that you ...
面试——node篇
node模块化原理
Node 异步单线程原理?(Nodejs如何实现高并发的)
Node.js 实现异步的核心是事件,也就是说,它把每一个任务都当成 事件 来处理,然后通过 Event Loop 模拟了异步的效果
每个Node.js进程只有一个主线程在执行程序代码,形成一个执行栈(execution context stack)
主线程之外,还维护了一个”事件队列”(Event queue)。当用户的网络请求或者其它的异步操作到来时,node都会把它放到Event Queue之中,此时并不会立即执行它,代码也不会被阻塞,继续往下走,直到主线程代码执行完毕。
主线程代码执行完毕完成后,然后通过Event Loop,也就是事件循环机制,开始到Event Queue的开头取出第一个事件,从线程池中分配一个线程去执行这个事件,接下来继续取出第二个事件,再从线程池中分配一个线程去执行,然后第三个,第四个。主线程不断的检查事件队列中是否有未执行的事件,直到事件队列中所有事件都执行完了,此后每当有新的事件加入到事件队列中,都会通知主线程按顺序取出交EventLoop处理。当有事件执行完毕后,会通知主 ...