其实就是scope属性里设置singleton
| prototype
两个属性,默认是singleton单例的
prototype是多实例。
其余的request
:每次HTTP请求会建立新的bean,该做用域仅适用于WebApplicationContext环境。
session
:同一个HTTP session共享bean,该做用域仅适用于WebApplicationContext环境。java
springmvc提供了过滤器CharacterEncodingFilter:这个类有两个变量String类型的encoding、boolean类型forceEncoding默认false,核心方法doFilterInternal,方法中有request.setCharacterEncoding设置请求字符集,设force那个为true的话,能够设置response.setCharacterEncoding。
那么在web.xml里须要配置这一属性:git
<!--post方式字符集--> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <!--初始化参数--> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <!--响应乱码,可设可不设--> <init-param> <param-name>force-encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
get方式,修改Tomcat的server.xml中的配置。web
springmvc在处理模型数据有两种方式:方式一.返回值是ModelAndView、方式二.在参数中传入Map,Model或者ModelMap;最后都会转换为一个 ModelAndView对象(因此是以request做用域来响应用户)
流程以下图:
redis
总结
请求过来后,先到DispatcherServlet中央处理器,以后它会调用处理器映射器找到HandlerMapping处理器映射器里的方法,返回HandlerExecultionChain对象,这个对象包含了全部的拦截器和处理器。
以后拿到HandlerAdapter处理器适配器,由它找到对应的处理器去调用请求,至关于调用controller以后,会返回ModelAndView对象,这个对象返回到中央处理器。
中央处理器经过咱们在springmvc配置文件中配的InternalResourceViewResolver视图解析器,获得视图InternalResourceView。
获得视图以后,调用里边的方法进行渲染视图,将咱们的模型数据,在页面给用户呈现出来,响应给用户。算法
CentOS 6spring
运行级别runlevel(centos6),
经常使用级别3和5
0 停机、1 单用户root状态、2 多用户状态、3 有网多用户状态
、4. 保留、5 图形模式
、六、重启sql
CentOS 7数据库
Git:分布式版本控制工具json
建立分支centos
切换分支
一步完成:git checkout -b <分支名> #直接就完成了建立,并切换过去了
合并分支
先切换到主干 git checkout master
git merge <分支名>
删除分支
先切换到主干 git checkout master
git branch -D <分支名>
工做流:
master分支,分出多个develop分支,并行开发互不影响;出现bug了,能够有master分出一个临时分支,处理完后再合并到master中合并上线;以后将临时分支合并到develop分支,保证版本一致,避免bug重复出现。
开发人员开发完成了,先合并到dev分支,建立测试分支进行测试,没问题了在合并到master上线,以后再和dev合并保证一致。
两种:
RDB(Redis DataBase)快照,将全部内存数据进行全量保存
;优势:省空间,效率高;缺点:数据量大耗性能,最后一次持久化可能数据丢失
AOF(Append Of File)日志,以日志形式来记录每一个写操做增量操做
;优势:备份稳健,可读日志处理误操做;缺点:占更多磁盘,备份慢,占性能
MySQL官方定义:索引(Index)是帮助MySQL高效获取数据的数据结构。简而言之,索引本质是数据结构。
优:提升检索
效率,下降数据库IO成本;经过索引列对数据进行排序
,下降排序成本,下降cpu消耗。
劣:下降更新表的速度
,由于更新表时,不只要保存数据,还要保存索引更新了的索引列字段,不断调整索引信息。
实际上,索引也是一张表
,该表保存了主键与索引字段,并指向实体表的记录,因此索引列也要占用空间
主键自动惟1、频繁查询字段、外键关联字段、组合索引性价比高、排序字段、统计或分组字段(分组更伤性能)
表记录太少、频繁增删改、where用不到字段、过滤性很差字段(例:性别)
GC发生在heap堆
中。
GC是分代收集算法
:频繁收集年轻代``Minor GC
、次数较少老年代``Full GC
、永久区不GC
GC的四大算法:
String
绑定ip地址,能够记录ip地址的操做。
Hash
存储用户信息
【id,name,age】
Hset(key,field,value)
Hset(userKey,id,101)
当我修改用户信息某一项属性的时候,能够直接取出单一的值。
不建议使用String类型
是由于,在反序列化时,会所有序列化出来,会增长IO次数,下降性能。
List
实现最新消息的排行
,
还能够利用List的push命令,将任务存在list集合中,同时使用另外一个命令,将任务从集合中取出[pop]。
Redis — List 数据类型来模拟消息队列。【电商中的秒杀就能够采用这种方式来完成一个秒杀活动】
Set
特殊之处:能够自动排重(非重复)。好比说微博中将每一个人的好友存在集合(Set)中
,
这样求两我的的共通好友的操做。咱们只须要求交集便可。
Zset (SortedSet)
以某一个条件为权重,进行排序。 京东:商品详情的时候,都会有一个综合排名,还能够按照价格进行排名。
它们都是基于Lucene搜索服务器基础上开发,高性能的企业级
搜索服务。【它们都是基于分词技术
构建的倒排索引
方式进行查询】
区别:
Solr的本质是web项目
,须要部署到web服务器上,启动服务器时需配置solr。Solr集群图
ElasticSearch集群图
单点登陆:一处登陆、多处使用
(前提:单点登陆多使用在分布式系统中)
【京东:单点登陆是将token放入到cookie中】
Redis
【京东将未登陆购物车放在redis中,给未登陆用户存储惟一标识uuid,保存用户未登陆时的购物车信息】、cookie
Redis
缓存[hash或string:hset(key,field,value)],读写速度快;保证数据安全性,将数据存到数据库中。综合数据
分布式系统中处理高并发的情景。
因为高并发的环境下,来不及同步处理大量请求,则会致使请求发生阻塞。这是使用消息队列的异步通讯
能够解决问题。
消息队列弊端: 消息的不肯定性,延迟队列,轮询技术来解决该问题便可!(ActiveMQ java)