- 浏览: 21652 次
最新评论
-
Adan-Chiu:
原生HttpServletReqest方式不推荐,因为这样的话 ...
Spring MVC组件开发-控制器接收各类请求参数 -
Adan-Chiu:
对的,多谢指出
Spring MVC组件开发-控制器接收各类请求参数 -
迷茫的眼:
挺详细的,可以再补充一个用原生HttpServletReqes ...
Spring MVC组件开发-控制器接收各类请求参数 -
迷茫的眼:
这里的参数应该是数组或者集合吧 @RequestMapp ...
Spring MVC组件开发-控制器接收各类请求参数 -
迷茫的眼:
很详细,可以当手册用,扫到我不少盲点,如果再有个完整实战就更好 ...
装配Spring Bean
文章列表
搭建商品秒杀开发环境和超卖现象
适逢618狂欢大冲刺,嗨购不停歇,现在模拟一件秒杀商品浪琴瑰丽女表,原价10000元,秒杀价7999块,共10000件,有2万人同时抢夺的场景。在高并发的场景下,除了数据的一致性外,还要关注性能问题,一般而言,超过5秒用户体验就不太好了,所以要考虑数据一致性和系统的性能。
1.技术栈采用spring-boot-starter-data-jpa,导入相关依赖
compile 'org.springframework.boot:spring-boot-starter-data-jpa'
compile 'org.springframe ...
Spring的缓存管理器
在spring项目中提供了CacheManager接口来定义缓存管理器,这样各个不同的缓存就可以实现它来提供管理器的功能了,在spring-boot-starter-data-redis.jar中自动配置了RedisCacheManager(实现了CacheManager接口),可以通过设置spring.cache.cache-names属性在启动时创建其缓存,并且可以使用spring.cache.redis.*属性配置缓存默认值。例如,以下配置创建的cache1和cache2缓存的生存时间为10分钟:
spring.cache.cache-nam ...
mysql数据库主从同步
- 博客分类:
- Mysql
什么是主从同步
所谓主从同步,是指两个或多个数据库数据一致,一个库数据的更新会同步更新到所有的数据库上。
主从同步的必要性
在实际项目中,为了产品的高可用,我们常常会搭建多台数据库,实现冗余,达到负载均衡、容灾等目的。比如,只有一台数据库的时候,大量的用户请求,或者由于一些硬件故障导致的宕机,将会导致整个应用的crash,此时如果能够有多余的服务器提供服务,就可以将请求分配到别的可用的服务器,从而保证用户的正常使用!摆在我们跟前的问题就是,如何能够保证两台或多台数据库服务器上数据的一致性!
主从同步的作用
服务器容灾,一旦主服务器出现问题,可以快 ...
在我们系统开发中,常常会遇到样式格式一致但内容不一致的页面,比如用户注册后发送的用户激活邮件,找回密码邮件(html格式邮件)以及商品详情页等,先看看邮件发送服务API:
@Service
public class EmailServiceImpl implements EmailService {
@Autowired private JavaMailSender mailSender;
@Override @Async
public void sendSimpleEmail(String sendTo, String subject, St ...
处理异常
控制器的通知注解@ExceptionHandler可以处理异常,此外,spring mvc还提供了其他的异常处理机制,使用它们可以获取更为精确的信息,从而为定位问题带来方便。在默认情况下,spring会将自身产生的异常转换为合适的状态码,通过这些状态码可以进一步确定异常发生的原因,以便找到对应的问题。
spring中部分异常默认映射码
Spring异常
HTTP状态码
BindException
400 - Bad Request
ConversionNotSuppor ...
在传统的 Java Web 项目中,使用数据库进行存储数据,但是有一些致命的弊端,这些弊端主要来自于性能方面。由于数据库持久化数据主要是面向磁盘,而磁盘的读/写比较慢,在一般管理系统中,由于不存在高并发,因此往往没有瞬间需要读/写大量数据的要求,这个时候使用数据库进行读/写时没有太大的问题的,但是在互联网中,往往存在大数据量的需求,比如,需要在极短的时间内完成成千上万次的读/写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,导致服务宕机的严重生产问题。
为了克服这些问题,Java Web 项目往往就引入了 NoSQL 技术,NoSQL 工具也是一种简易的 ...
Window 下安装
下载地址:https://github.com/MSOpenTech/redis/releases。
Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,选择下载 Redis-x64-xxx.zip压缩包到指定盘符解压即可。主要看Linux下的安装
Linux 下安装
由于在实际工作中,Redis往往安装在服务器端,服务器使用的是Linux/Unix系统。所以更多的时候,在工作中需要安装在服务器环境中。
首先使用root用户登录Linux系统,执行以下命令
$ yum install gcc-c++
$ cd /usr/
...
技术语言革新极快的今天,尤其对于需要技术沉淀的后端工程师来说,靠什么实力逆风翻盘?
在 Java 框架尚且繁荣的当下,Spring Boot 无疑最火最实用的,也是必不可少的开源框架,完全有实力稳坐 Java 后端框架的龙头老大。
更有江湖人称,Spring Boot 就像九阳神功。有了它护体,再学 Spring MVC、mybatis、JPA,撸起 demo 来简单到飞起。
01
什么是 Spring Boot?
Spring Boot 是由 Pivotal 团队提供的全新框架,它来自于 Spring 大家族,因此 ...
gradle-依赖管理
- 博客分类:
- gradle
依赖管理
几乎所有的基于JVM的软件项目都需要依赖外部类库(通常以jar形式存在)来重用现有功能。jar文件规范不要求你指定类库版本。然而,将版本号添加到jar文件上来标识一个特定的发布版本(比如:spring-contex ...
SpringData概述
Spring Data : Spring 的一个子项目。Spring Data的任务是为数据访问提供一个熟悉的、一致的、基于Spring的编程模型,同时仍然保留底层数据存储的特殊特性.简言之就是用于简化数据库访问,支持NoSQL 和 关系 ...
Spring Data REST
Spring Data REST基于Spring Data的repository之上并自动将其导出为REST资源。目前Spring Data REST支持Spring Data JPA、Spring Data MongoDB、Spring Data Neo4j、Spring Data GemFire、Spring Data Cassandra的 repository 自动转换成REST服务。简单点说,Spring Data REST把我们需要编写的大量REST模版接口做了自动化实现.
利用spring bo ...
我们的dao层只是和数据库打交道的中间件,不涉及我们的业务逻辑,一般一个事务代表一个业务边界,所以我们的事务应该定义在service层上,由于我们的service是单例的,如何保证我当前的操作是线程安全的(即是在同一个连接上做的操作)。解决方案是使用ThreadLocal,它是线程绑定的变量,提供线程局部变量(ThreadLocal用于保存某个线程共享变量:对于同一个static ThreadLocal,不同线程只能从中get,set,remove自己的变量,而不会影响其他线程的变量。),我们将连接绑定在当前的线程上。
public class JdbcUtil {
...
为控制器添加通知
与SpringAOP一样,SpringMVC也可以为控制器加入通知,它主要涉及4个注解:
@ControllerAdvice:作用于类,用以标识全局性的控制的拦截器,将应用于对应的控制器
@InitBinder:允许在构造控制器参数的时候,加入一定的自定义控制
@ExceptionHandler:当控制器发生异常时,就会跳转到该方法上
@ModelAttribute:先于控制器方法执行,当标注方法返回对象时,会保存到数据模型中,并传递给拦截的控制器
一个控制器通知的实例。
//标识控制器通知,并且指定对应的包
@ControllerAdvice(base ...
一、linux目录架构
/:根目录,位于Linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中。
封装jdbc-完成简易版的orm框架
- 博客分类:
- jdbc
前面我们使用JDBC以及一些设计模式来完成数据的持久化操作,还是有大量的sql语句以及设置等操作,针对这些持久化操作能否以一种操作对象的方式来完成呢,即对外隐藏jdbc的实现细节,对方法api调用者来说只需要以操 ...