• 0点赞

    Spring Security系列三 用户密码加密实现

    前言 Spring Security系列二 用户登录认证数据库实现中,我们已经把对用户的认证改成了数据库实现,功能上虽然完成了,但是用户的密码却都是以明文保存的,这在实际项目中安全系数上会有所欠缺。在本章中我们将实现如何对用户的密码进行加密。 Spring Security中的密码加密 在
  • 1点赞

    Spring Security系列二 用户登录认证数据库实现

    前言 在前面Spring Security系列一 权限控制基本功能实现中,我们已经实现了基本功能,这一章我们来把用户的登录认证修改成贴近实际的数据库获取。 Spring Security认证架构 在这之前,先来了解一下Spring Security的认证架构,有篇不错的分析文章,具体可以看这里:https://m
  • 1点赞

    我(作为一名开发者)所犯过的错误

    我2006年开始工作,至今已经10年。10年是个里程碑,我开始回顾自己曾经犯过的错误,以及我希望从同行那里得到什么类型的忠告。一切都在快速改变,10年了,我不能确定这些秘诀是否还有用。 不管您是新人还是老手,您都会发现我的话是有用的。我期待听到您的观点,所以请不吝赐
    Abiy Abiy 发表于 3月前
  • 0点赞

    iOS端数据库解决方案分析

    很早之前就想写一篇iOS端数据库相关的总结文章,梳理下使用移动端数据库的一些重要知识点,再综合对比下sqlite和CoreData的优缺点,希望能帮助一些这方面经历较少的同学少走一些弯路。 为什么要用数据库 iOS端持久化的方案选择比较多,NSUserDefault,Keychain,File,sqlite
    Alix-Axel Alix-Axel 发表于 3月前
  • 0点赞

    你的编程技巧已经过时了吗?

    编程是一个不断向前发展的行业。在某些时候,你可能会诚实地看看自己的技能,并得出结论,你已经落在了曲线的后面。如果你是专业人士,那么这很容易做到,因为很多时候你没有必要夜以继日地推着自己前进。 但迟早,落后的趋势会回过头来咬你一口,让你血流不止。在商业和就业
    George George 发表于 3月前
  • 0点赞

    Android 混淆从入门到精通

    简介 作为Android开发者,如果你不想开源你的应用,那么在应用发布前,就需要对代码进行混淆处理,从而让我们代码即使被反编译,也难以阅读。混淆概念虽然容易,但很多初学者也只是网上搜一些成型的混淆规则粘贴进自己项目,并没有对混淆有个深入的理解。本篇文章的目的就是让
    Abiy Abiy 发表于 3月前
  • 0点赞

    深入理解 Android 之 View 的绘制流程

    概述 本篇文章会从源码(基于Android 6.0)角度分析Android中View的绘制流程,侧重于对整体流程的分析,对一些难以理解的点加以重点阐述,目的是把View绘制的整个流程把握好,而对于特定实现细节则可以日后再对相应源码进行研读。 在进行实际的分析之前,我们先来看下面这张图
    Holger-Just Holger-Just 发表于 3月前
  • 2点赞

    创业之初的技术题:如何构建一个较为通用的业务技术架构

    1、通用架构概述 创业之初,我们往往会为了快速迭代出产品,而选择最简单的技术架构,比如LAMP架构,SSH三层架构。这些架构可以适应初期业务的快速发展,但是,随着业务变得越来越复杂,我们会发现这些架构越来越难支撑业务的发展,出现在一个类中写好几千行代码,一个方法中
    Alix-Axel Alix-Axel 发表于 3月前
  • 6点赞

    Java 8 API 设计经验浅析

    任何写Java代码的人都是API设计师!无论编码者是否与他人共享代码,代码仍然被使用:要么其他人或他们自己使用,要么两者皆有。因此,对于所有的Java开发人员来说,了解良好API设计的基础很重要。 一个好的API设计需要仔细思考和大量的经验。幸运的是,我们可以从其他更聪明的
    Elnur-Abdurrakhimov Elnur-Abdurrakhimov 发表于 3月前
  • 1点赞

    关于Java并发编程的总结和思考

    编写优质的并发代码是一件难度极高的事情。Java语言从第一版本开始内置了对多线程的支持,这一点在当年是非常了不起的,但是当我们对并发编程有了更深刻的认识和更多的实践后,实现并发编程就有了更多的方案和更好的选择。本文是对并发编程的一点总结和思考,同时也分享了Java
    MetroidFan2002 MetroidFan2002 发表于 3月前
  • 6点赞

    Spring 5 新特性:函数式Web框架

    正如昨天Juergen博客中所提到的,Spring?5.0的第二个里程碑是引入了一个新的函数式web框架。在这篇文章中,我们将给出关于这个框架的更多信息。 举例 我们先从示例应用程序的一些摘录开始。下面是暴露Person对象的响应信息库。很类似于传统的,非响应信息库,只不过它返回Flux
    BalusC BalusC 发表于 3月前
  • 1点赞

    MySQL 动态字符串处理详解

    MySQL中,常常会看到一些关于动态字符串的处理,列如:DYNAMIC_STRING。 为了记录动态字符串的实际长度,缓冲区的最大长度,以及每次字符串需要调整时,及时分配新的内存,以及调整长度。MySQL使用了DYNAMIC_STRING来保存动态字符串相关的信息: typedef struct st_dynamic_str
    twernt twernt 发表于 3月前
  • 9点赞

    ASP.NET 性能监控和优化入门

    关键要点: 只有与应用指标相关联,基础设施指标才能最大发挥作用。 高效性能优化的关键在于性能数据。 一些APM工具为ASP.NET提供了开箱即用的支持,这样入门使用ASP.NET仅需最小限度的初始设置。 代码分析工具为程序性能给出了最为详尽的视图。 轻量级分析工具给出了网页性能
    gnrfan gnrfan 发表于 3月前
  • 4点赞

    Java 8 Streams 中的数据库 CRUD 操作

    接触一个新工具的时候,刚开始要克服的最大障碍就是如何让你自己先尝试做出一个小东西来。现在你也许对 Java 8 中新的?Stream API 的运作方式在理解上比较自信,但你也许并没用它来进行过数据库查询操作。为了帮助你开始使用 Stream API 来对 SQL 数据库进行创建、修改和读取
    Fabien-Menager Fabien-Menager 发表于 3月前
  • 6点赞

    SSO单点登录三种情况的实现方式详解

    单点登录(SSO——Single Sign On)对于我们来说已经不陌生了。对于大型系统来说使用单点登录可以减少用户很多的麻烦。就拿百度来说吧,百度下面有很多的子系统——百度经验、百度知道、百度文库等等,如果我们使用这些系统的时候,每一个系统都需要我们输入用户名和密码登录
    Jonathan-Tran Jonathan-Tran 发表于 3月前
  • 8点赞

    深入解析 Java OutOfMemoryError

    在Java中,所有对象都存储在堆中。他们通过new关键字来进行分配,JVM会检查是否所有线程都无法在访问他们了,并且会将他们进行回收。在大多数时候程序员都不会有一丝一毫的察觉,这些工作都被静悄悄的执行。但是,有时候在发布前的最后一天,程序挂了。 Exception in thread &
    Ahamed Ahamed 发表于 3月前
  • 1点赞

    Mac上使用官方原生的Docker for Mac

    前言 之前有用docker-machine的方式在mac上实现了docker的使用,具体可以看这里:Mac下安装使用Docker 今天去Docker的官网逛了下,居然发现有原生的Mac app应用,地址:https://www.docker.com/products/docker#/mac 简单看了下文档,原理上仍然是通过虚拟机的方式,使用了xhyve 虚拟
  • 8点赞

    高并发Java(9):锁的优化和注意事项

    1. 锁优化的思路和方法 在高并发Java(1):前言中有提到并发的级别。 一旦用到锁,就说明这是阻塞式的,所以在并发度上一般来说都会比无锁的情况低一点。 这里提到的锁优化,是指在阻塞式的情况下,如何让性能不要变得太差。但是再怎么优化,一般来说性能都会比无锁的情况差
    mortensen mortensen 发表于 6月前
  • 6点赞

    Tomcat5.5(6.0)配置-多域名绑定和虚拟目录

    Tomcat5.5 (6.0)配置-多域名绑定和虚拟目录 需要修改配置文件:Tomcat 5.5(6.0)\conf\server.xml server.xml 的修改方式如下: 1.如果你要绑定网站,首先是要把tomcat的默认访问端口8080,修改成80 原始: <Connector port="8080" maxHttpHeaderSize="8192"
    mortensen mortensen 发表于 6月前
  • 5点赞

    从使用到原理学习Java线程池

    线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。 所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数
    Tuffin Tuffin 发表于 6月前