- 博客(646)
- 资源 (11)
- 收藏
- 关注
原创 Springboot2(4)Controller控制层讲解
目录@Controller&@RestController@RequestMappingvalue属性params、headers 示例@PathVaribale & @RequestParam & @RequestBody@Controller&@RestController项目前后台交互的话 无非两种方式一种普通整体页面提交,比...
2018-12-24 19:22:30
21989
2
原创 Springboot2(3)静态资源处理
默认静态资源映射Spring Boot 默认将 /** 所有访问映射到以下目录:classpath:/staticclasspath:/publicclasspath:/resourcesclasspath:/META-INF/resources当文件夹有相同名字的文件时,以后面的文件为准,假如以上所有文件夹都有login.html文件,则显示/META-INF/resourc...
2018-12-24 19:11:36
16802
原创 Springboot2(2)属性配置讲解和自定义属性配置
[源码地址](https://gitee.com/cowboy2016/springboot2-open)springboot2系列教程在使用spring boot过程中,可以发现项目中只需要极少的配置就能完成相应的功能,这归功于spring boot中的模块化配置,在pom.xml中依赖的每个Starter都有默认配置,而这些默认配置足以满足正常的功能开发。重点多环境的配置...
2018-12-24 18:44:58
24149
原创 Springboot2(1)日志配置和动态日志等级设置
Spring Boot内部采用的是Commons Logging进行日志记录,但在底层为Java Util Logging、Log4J2、Logback等日志框架提供了默认配置 。Java 虽然有很多可用的日志框架,但请不要担心,一般来说,使用SpringBoot默认的Logback就可以了。注意点 springboot默认的日志等级是INFO 要通过logging.fi...
2018-12-24 16:57:50
31264
2
原创 Springboot2(20)轻松搞定WebSocket
实现后台向前端推送信息pom.xml引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId></dependency>We...
2018-12-23 01:00:18
22441
1
原创 Springboot2(16)运行状态监控使用Actuator
springboot2.0 的配置#actuator端口management.server.port: 9001#修改访问路径 2.0之前默认是/ 2.0默认是 /actuator 可以通过这个属性值修改management.endpoints.web.base-path: /actuator#开放所有页面节点 默认只开启了health、info两个节点managemen...
2018-12-23 00:55:52
15803
原创 Springboot2(17)轻松搞定AOP
集成Spring AOP步骤1 引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>2.实体@Sl...
2018-12-23 00:52:40
14319
1
原创 Springboot2(18)轻松搞定数据缓存
缓存可以缓解数据库访问的压力,Spring自身不提供缓存的存储实现,需要借助第三方,比如JCache、EhCache、Hazelcast、Redis、Guava等。Spring Boot可以自动化配置合适的缓存管理器(CacheManager),默认采用的是ConcurrentMapCacheManager(java.util.concurrent.ConcurrentHashMap)。添...
2018-12-23 00:50:55
14921
2
原创 Springboot2(19)定时任务
1) Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。 最早的时候就是这样写定时任务的。2) 开源的第三方框架: Quartz 或者 elastic-job , 但是这个比较复杂和重量级,适用于分布式场景下的定时任务,可以根据需要多实例部署定时任务。3) 使用Spring提供的注解: @Schedule 。 如果定时任务执行...
2018-12-23 00:30:13
14634
原创 Springboot(10)轻松搞定统一异常处理
HandlerExceptionResolver接口实现该接口,注册到spring容器中,当controller中产生异常的时候会调用该接口来处理,注意,当返回值指定视图时会自动跳转至指定的视图中去,如果返回null,会继续调用下一个异常处理器去执行。 springboot中可以通过以下方式去注册进容器。@Component@Slf4j@Order(Ordered.HIGHEST_PRE...
2018-12-22 09:02:58
15027
原创 Springboot(9)轻松搞定跨域访问(CORS)
CORS实现跨域访问方式1:返回新的CorsFilter方式2:重写WebMvcConfigurer方式3:使用注解(@CrossOrigin)方式4:手工设置响应头(HttpServletResponse )返回新的CorsFilter(全局跨域)@Configurationpublic class GlobalCorsConfig {@Beanpublic CorsF...
2018-12-22 09:01:00
14831
原创 Spring2(8)轻松搞定Listener(监听器)
创建监听器@WebListener@Configuration@Slf4jpublic class ContextListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent servletContextEvent) { ...
2018-12-22 08:59:59
14535
1
原创 Springboot2(7)轻松搞定自定义Filter(过滤器)
过滤器Filter,是Servlet的的一个实用技术了。可通过过滤器,对请求进行拦截,比如读取session判断用户是否登录、判断访问的请求URL是否有访问权限(黑白名单)等。主要还是可对请求进行预处理。接下来介绍下,在springboot如何实现过滤器功能@WebFilte利用@WebFilter注解配置//注册器名称为customFilter,拦截的url为所有@WebFilter(f...
2018-12-22 08:59:09
17038
原创 Springboot2(6)轻松搞定Interceptor(拦截器)
编写自定义拦截器类@Slf4jpublic class CustomHandlerInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletR...
2018-12-22 08:58:00
15471
原创 Springboot2(5)WebMvcConfigurer讲解
在SpringBoot2.0及Spring 5.0 WebMvcConfigurerAdapter已被废弃SpringBoot2.0(官方推荐)@Configurationpublic class WebMvcConfg implements WebMvcConfigurer {}SpringBoot2.0以前版本@Configurationpublic class WebMvcC...
2018-12-22 08:56:55
26504
2
原创 Android gradle3.x中 implementation 、compile、api区别
compile与api二者等同,无区别implementation与compile或implementation与apiimplementation编译的依赖只作用于当前的module。即APP module依赖了core module,core module中使用implementation编译的三方库(如glide)只对core module起作用,app module中无法使用该三方库(glide);如果core module 使用implementation依赖了base module,
2021-03-13 08:27:17
641
原创 Android9网络请求
手机升级了9.0,调试程序的时候发现网络请求总是失败。逛了一下CSDN发现了问题所在。Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。也就是说http请求都会报错,https不受影响解决办法如下:res下新建一个文件夹,并创建xml文件<?xml version="1.0" encoding="utf-8"?><network-security-config> <base-config cleartextTrafficPerm
2021-03-13 08:21:36
626
原创 anaconda和tensorflow安装教程
即使以前安装过python的其它版本也没关系,本教程一样有效。1.anaconda安装使用清华的源下载速度比较。下载地址下载完成后安装,没什么需要注意的添加环境变量检测anaconda环境是否安装成功conda --version目前安装了哪些环境变量conda info --envs2.tensorflow安装在开始菜单—>Anaconda3—>Anaconda Prompt中,用Anaconda3创建一个python3.8的环境,环境名称为tensor.
2021-01-28 22:55:24
1902
1
原创 PackageManager(管理应用程序包)解析
PackageManager:管理应用程序包功能:安装,卸载应用查询permission相关信息查询Application相关信息(application,activity,receiver,service,provider及相应属性等)查询已安装应用增加,删除permission清除用户数据、缓存,代码段等使用方法:在Android中,为应用包的安装,删除各种操作服务的,是PackageManagerSerivce,简称PMS.如果想要调用PMS的服务,则可
2021-01-10 22:36:48
8586
2
原创 Android中通过其他APP启动Activity的三种方式
提示:在启动一个Activity前进行必要的存在检测很有必要,以免程序意外崩溃。PackageManager packageManager = getPackageManager();Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("xl://goods:8888/goodsDetail?goodsId=10011002"));List<ResolveInfo> activities = packageManager.qu.
2021-01-10 22:01:30
1604
原创 android.intent.action.MAIN和android.intent.category.LAUNCHER的理解
当我们使用Android Studio创建一个工程并生成一个Activity时,经常可以在清单文件中看到如下的代码:<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.ca
2021-01-09 10:59:22
2661
3
原创 android studio 控制台打印输出日志
有些情况下,不方便使用断点的方式来调试,而是希望在控制台打印输出日志,使用过Eclipse的同学都知道Java可以使用 System.out.println(""); 来在控制台打印输出日志,但是在android studio中却是不行的,还是有差别的,那应该用什么呢?android.util.Log在调试代码的时候我们需要查看调试信息,那我们就需要用Android Log类。android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 L
2021-01-08 23:43:38
4434
原创 (1)android开发环境搭建
1、官网下载 Android Studio 编辑器首先,访问谷歌中国开发者网站下载 Android Studio 编辑器:https://developer.android.google.cn/studiowindow上有压缩版和安装版,看个人爱好下载。2、安装和配置基于解压版,下载android-studio-ide-201.6953283-windows.zip,解压后进入bin目录,双击studio64.exe会打开 Android Studio 编辑器
2021-01-07 16:53:08
358
1
原创 mybatis知识
mybatis+maven项目搭建搭建一个简单的maven+mybatis项目在pom.xml加上mybatis和数据库的配置,我这里用mysql示例<?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
2020-12-01 07:16:57
375
1
原创 Python的虚拟环境(venv)
pippip:python install package,python三方包管理工具。安装python解释器时已自带。目录已添加到环境变量中。包管理工具:包是别人写好的代码。经常有这种情况,比如爬虫框架功能的A包,里面引用了负责解析页面的B包,B包引用了更加基础底层的C包。包关系成树状引用。B包依赖C包。直接使用A包,运行报错缺少B包,缺少依赖包。pip list输出安装过的三方包的列表pip install 包名命令用来安装包。安装包的本质是从pypi下载,解压复制到C:\Py
2020-11-03 17:39:47
2532
1
原创 在idea下用Python搭建Django
1.创建Django项目点击idea左上角的File,然后点击New,之后点击Project。安装django重新创建项目2.配置项目点击idea右上角,如下图(这一步是临时的,不写第二步的话,如果把项目考到别的idea上运行,得重新配置)需要把manage.py中的’DJANGO_SETTINGS_MODULE’, ‘django_demo.settings’,添置到Environment Variables接下来死点击idea左上角File中的Proj
2020-11-03 17:13:55
2888
原创 linux安装python3.9
1. 查看当前python版本可以看到执行python,默认是2.72. 安装依赖包yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel3. 下载源码包wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz我是下载的最新的python3
2020-11-03 11:25:53
13250
原创 windows下安装python 且 安装pip
1、下载安装包Python官网地址:https://www.python.org/downloads/2、添加环境变量3、测试
2020-11-03 09:27:30
328
原创 window10 redis集群安装
下载资源Redis-x64-3.2.100.ziprubyinstaller-2.3.3-x64.exeredis-3.3.3.gemredis-trib.rb 资源下载地址步骤安装redis解压Redis-x64-3.2.100.zip,复制六份(建议放在同一文件夹下),并重命名文件夹为7000、7001、7002、7003、7004、7005分别进入相应的文件夹修改文件redis.windows.confport 7000 bind 0.0.0.0
2020-07-11 17:01:51
476
1
原创 java多线程并发系列--基础知识点(笔试、面试必备)
多线程和并发是求职大小厂面试中必问的知识点,其涉及到点很多,难度很大。有些人面对这些问题有点迷茫,为了解决这情况,总结了一下java多线程并发的基础知识点。而且要想深入研究java多线程并发也必须先掌握基础知识,可为后续各个模块深入研究做好做好准备。现在废话不多说,各位看官请查看基础知识点,后续还有源码解析(synchronize底层原理,线程池原理,Lock,AQS,同步、并发容器等源码解析)。...
2019-12-09 23:52:39
1135
原创 《提升能力,涨薪可待》-Java并发之AQS全面详解
一、AQS是什么?有什么用?AQS全称AbstractQueuedSynchronizer,即抽象的队列同步器,是一种用来构建锁和同步器的框架。基于AQS构建同步器:ReentrantLockSemaphoreCountDownLatchReentrantReadWriteLockSynchronusQueueFutureTask优势:AQS 解决了在实现同步器时涉及的大...
2019-12-09 23:49:41
1050
原创 《面试知识,工作可待:集合篇》-java集合面试知识大全
一、集合基础1.1 集合框架有哪些优点如下:使用核心集合类降低开发成本,而非实现我们自己的集合类。随着使用经过严格测试的集合框架类,代码质量会得到提高。通过使用 JDK 附带的集合类,可以降低代码维护成本。复用性和可操作性。1.2 Java集合类框架的基本接口有哪些?Java 集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。Java集合类里面最基本的接口有:Col...
2019-12-09 23:47:57
879
原创 MyBatis常见面试题【面试官之你说我听】-
精讲#{}和${}的区别是什么?mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值。mybatis在处理时,就是把{}时,就是把时,就是把{}替换成变量的值。使用#{}可以有效的防止SQL注入,提高系统安全性。原因在于:预编译机制。预编译完成之后,SQL的结构已经固定,即便用户输入非法参数,也不会对SQL的结构产生影响,从...
2019-12-09 23:43:21
952
原创 美团架构师呕心之作:大厂面试核心知识点梳理
1.JVMJVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接 的交互。2. JAVA 集合集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。Collection:Collection 是集...
2019-12-09 23:34:23
1432
2
原创 【大厂面试真题350道】性能优化+微服务+并发编程+开源框架+分布式
一,性能优化专题:1.tomcat性能调优怎么给tomcat调优如何加大comcat连接数怎么加大tomcat的内存tomcat中如何禁止列目录下的文件Tomcat有几种部署方式tomcat的优化经验2.jvm性能优化专题:Java类加载过程java内存分配描述一下jvm加载class文件的原理机制GC是什么?为什么要有GC?简述java垃圾回收机制如何判断一个对...
2019-12-09 23:30:15
615
原创 2019年JVM面试都问了什么?快看看这22道面试题!(附答案解析)
一. Java 类加载过程?Java 类加载需要经历一下 7 个过程:1. 加载加载是类加载的第一个过程,在这个阶段,将完成一下三件事情:• 通过一个类的全限定名获取该类的二进制流。• 将该二进制流中的静态存储结构转化为方法去运行时数据结构。• 在内存中生成该类的 Class 对象,作为该类的数据访问入口。2. 验证验证的目的是为了确保 Class 文件的字节流中的信息不回危害到虚...
2019-12-09 23:22:27
731
原创 硬核! 逛了4年Github ,一口气把我收藏的 Java 开源项目分享给你!
Awsome JavaGreat Java project on Github(Github 上非常棒的 Java 开源项目).English Version大家都知道 Github 是一个程序员福地,这里有各种厉害的开源框架、软件或者教程。这些东西对于我们学习和进步有着莫大的进步,所以我有了这个将 Github 上非常棒的 Java 开源项目整理下来的想法。我会按照几个维度对项目进行分类...
2019-12-09 22:35:19
12016
原创 并发编程 (20)并发容器:都有哪些“坑”需要我们填?
ava 并发包有很大一部分内容都是关于并发容器的,因此学习和搞懂这部分的内容很有必要。Java 1.5 之前提供的同步容器虽然也能保证线程安全,但是性能很差,而 Java 1.5 版本之后提供的并发容器在性能方面则做了很多优化,并且容器的类型也更加丰富了。下面我们就对比二者来学习这部分的内容。同步容器及其注意事项Java 中的容器主要可以分为四个大类,分别是 List、Map、Set 和 Q...
2019-12-09 21:44:02
882
原创 并发编程 (19)CountDownLatch和CyclicBarrier:如何让多线程步调一致?
前几天老板突然匆匆忙忙过来,说对账系统最近越来越慢了,能不能快速优化一下。我了解了对账系统的业务后,发现还是挺简单的,用户通过在线商城下单,会生成电子订单,保存在订单库;之后物流会生成派送单给用户发货,派送单保存在派送单库。为了防止漏派送或者重复派送,对账系统每天还会校验是否存在异常订单。对账系统的处理逻辑很简单,你可以参考下面的对账系统流程图。目前对账系统的处理逻辑是首先查询订单,然后查询派送...
2019-12-09 21:32:59
464
原创 并发编程 (18)StampedLock:有没有比读写锁更快的锁?
我们介绍了读写锁,学习完之后你应该已经知道“读写锁允许多个线程同时读共享变量,适用于读多写少的场景”。那在读多写少的场景中,还有没有更快的技术方案呢?还真有,Java 在 1.8 这个版本里,提供了一种叫 StampedLock 的锁,它的性能就比读写锁还要好。下面我们就来介绍一下 StampedLock 的使用方法、内部工作原理以及在使用过程中需要注意的事项。StampedLock 支持的三...
2019-12-09 21:24:10
484
window10 redis集群安装所需资源 Redis-x64-3.2.100.zip 、rubyinstaller-2.3.3-x64.exe 、redis
2020-07-11
centos6阿里云rabbitmq安装
2018-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅