Spring 一二事(1)】的更多相关文章

spring bean配置后再默认情况下是单例的,如果需要配置可以选择 prototype, request, session和global session 在配置spring mvc的action时,可以对action使用 prototype <!-- singleton: 默认单例 prototype: 多例 request ,session和global session: 只适用于web程序 --> <bean id="scope_prototype" clas…
简单介绍一下spring,一方面带新手入入门,一方面自己也重温一下第一个小工厂先暂时不用maven,下一个会用maven来来配置 jar包只需要一个,spring版本为2.5(暂时为2.5,后续更新,基本核心都是一样的),引入spring.jar到lib,如下: 在src下新建applicationContext.xml文件,结果如下: 内容如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmln…
AOP在spring中是非常重要的一个 在切面类中,有5种通知类型: aop:before  前置通知 aop:after-returning  后置通知 aop:after  最终通知 aop:after-throwing  异常通知 aop:around  环绕通知 <bean id="personDAO" class="com.lee.spring002.aop.xml.PersonDAOImpl"></bean> <bean i…
<!-- component:把一个类放入到spring容器中,该类就是一个component 在base-package指定的包及子包下扫描所有的类 --> <context:component-scan base-package="com.lee.spring012.scan.mvc.annotation"></context:component-scan> IStuDAO.java package com.lee.spring012.scan.…
之前的文章大多都是一带而过,一方面比较简单,一方面不是用的注解形式 在企业开发中,主要还是使用的注解来进行开发的 1 <!-- component:把一个类放入到spring容器中,该类就是一个component 在base-package指定的包及子包下扫描所有的类 --> <context:component-scan base-package="com.lee.spring011.scan"></context:component-scan>…
先贴出POM的内容,这个毕竟是用的maven来简单构建的 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0…
<!-- 依赖注入的装配过程 --> <bean id="person" class="com.lee.spring007.di.xml.setter.Person"> <property name="pid" value="1001"></property> <property name="name" value="nathan"&…
别名就是可以通过另外一个名字来访问如下,已有bean:helloWorld3,那么定义别名(alias )后,就能使用“abc”来访问 <bean id="helloWorld3" factory-bean="helloWorldFactory" factory-method="getInstance"></bean> <!-- 别名 name 属性值要和 id 一致 --> <alias name=&q…
静态工厂方法及实例工厂的使用: applicationContext.xml: <!-- factory-method 是指调用静态工厂方法 --> <bean id="helloWorld2" class="com.lee.spring002.createobject.method.HelloWorldFactory" factory-method="getInstance"></bean> <!--…
<bean id="personAction" class="com.lee.spring008.IOC.DI.MVC.PersonAction"> <property name="stuService" ref="stuService"></property> </bean> <bean id="stuService" class="com.…
大数据大数据,身边很多朋友都在谈大数据,Big Data!!! 到底是什么,用来干嘛的,也很少有人说得出一二,那今天开始就简单说说这一二事吧 hadoop 的来源:是作者女儿的一个玩具 - 一只黄色的大象 发音 /hadu:p/  在Apache旗下作为一个开源项目 它不是云计算,却是云计算中的一部分,属于大数据这块 hadoop是一个开源的分布式计算系统   hadoop所解决的问题:      海量数据存储 - HDFS (分布式文件系统,分布在多台电脑上进行存储)可以理解为一个大型的网盘,…
freemarker可以脱离web使用 前一篇文章使用了普通的方法 这回说说结合spring pom额外引入这个jar包 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency…
Redis真是好,其中的键值用起来真心强大啊有木有, 之前的文章讲过搭建了redis集群 那么咋们该如何调用单机版的redis以及集群版的redis来使用缓存服务呢? 先讲讲单机版的,单机版redis安装非常简单,不多说了,直接使用命令: [root@nginx bin]# ./redis-server redis.conf 启动就行 在sprig文件中配置如下 <!-- TODO: 开发环境使用单机版 生产环境务必切换成集群 --> <!-- 配置redis客户端单机版 -->…
在如今并发的环境下,对大数据量的查询采用缓存是最好不过的了,本文使用redis搭建集群 (个人喜欢redis,对memcache不感冒) redis是3.0后增加的集群功能,非常强大 集群中应该至少有三个节点,每个节点有一备份节点.这样算下来至少需要6台服务器 考虑到有些朋友的电脑配置不是很高,跑多个虚拟机就会卡,这边放出伪分布式和分布式 (2年前的配置) 前提先装好一个单例情况下的redis(这里就不多说了) 需要6个redis实例 搭建集群的步骤: 在/usr/local下 创建文件夹  …
db.properties jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/order jdbc.username=root jdbc.password=root SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//…
db.properties 单独提取出来的数据库配置,方便以后维护管理 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis jdbc.username=root jdbc.password=root SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE config…
mybatis呢是一个orm数据库框架,非常适合新人学,门槛相对较低 本人呢曾经是先做的hibernate,后接触的mybatis,接触mabatis前我比较抵触,为啥呢, 当时喜欢hibernate的POJO,直接注解实体映射数据库表对象,要增删改造直接get(id),save(entity),delete(entity),update(entity),显得非常方便: 而且又支持hql的查询 但是,久而久之,很多数据库性能方面的问题会暴露出来,你必须直接优化sql语句,那么hibernate的…
先回顾一下WEB技术的几个阶段 Web 1.0 内容为主,主要流行HTML和CSS Web 2.0 动态网页,流行AJAX/JavaScript/DOM H5 时代,WEB开发回归富客户端 那么H5肯定不是多了一些标签就完事了,H5也跟酷炫没什么关系,那是CSS3的事情,它更多的职责是功能,而不是外观,是JavaScript API和CSS的提升,构建 Web 应用程序整体解决方案 H5应用场景 极具表现力的网页 网页应用程序   比如PC端的iCloud.百度脑图.Office 365···A…
之前的路由模式是通过key相等来匹配 而通配符,顾名思义,符合条件,则进行消息匹配发送 将路由键和某模式进行匹配.此时队列需要绑定要一个模式上. 符号“#”匹配一个或多个词,符号“*”匹配不多不少一个词. 因此“audit.#”能够匹配到“audit.irs.corporate”,但是“audit.*” 只会匹配到“audit.irs” 如图: 官网截图: 代码示例: 服务方 接收方1 接受方2 路由模式也是通配符模式的一种 在生产环境中,以通配符模式用的较多 当然简单应用的话路由模式也够了…
路由模式其实和订阅模式差不多,只不过交换机的类型不同而已 路由模式可以用下图来表示,比订阅模式多了一个key,举个栗子就是根据不同的人群来订阅公众号,来收取消息 根据不同的key来获取不同的消息 最简单的就是男性用户以及女性用户的关注信息是不同的,推送的内容当然也是根据不同分类来推送 下图就是微信公众号群发的分类,虽然有用户订阅你,但你还是能够根据性别,以及国家甚至其他的标签来推送不同的消息 官方图示,根据不同的类型,或者可以说是属性,标签,来发送消息 把这片代码作为公众号的服务方,定义了一个交…
之前讲的消费者互相可以把队列中的消息全部读取,但是不是读完整的所有信息 那么采用订阅模式就行,这就是微信公众号的模式, 比如10个人订阅了我的公众号"BeJavaGod",当我发送一条消息的时候, 那么这10个人都能收到我的消息并且查看,比如本条消息,对吧? 生产者制造消息发送给交换机X,而不是发送给队列,队列和交换机绑定,消费者从各自的队列中获得消息 这样则实现一个生产者发送的所有消息都能被所有的消费者同时接收到 需要注意的地方是,在生产者创建消息发送到交换机时,此时没有队列,那么消…
上篇文章讲了简单队列的使用,这其实就是RMQ给的demo,实际并没有什么用 本篇讲讲工作模式队列,也称之为任务队列 一个生产者发布了多条消息,消费者A可以接受消息,接受消息后该消息就消除,消费者B可以接受其他消息 使用场景,一些数据库操作比较缓慢的话可以分别给多个接口调用,降低压力,或者抢单场景也能考虑, 比如就10个商品,100个消费者来抢单,前10个抢到了后,消息队列就为空了,那么第11个以后的所有消费者都不会抢到 代码示例: 生产者 public class Send { private…
消息队列目前流行的有三种 1. RabbitMQ 2. ActiveMQ 3. Kafka 这三种都非常强大,RabbitMQ目前用的比较多,也比较流行,阿里也在用 ActiveMQ是阿帕奇出品,但是性能上和RMQ相比相对差一些 卡夫卡呢,使用场景不同,不多介绍,主要是用于日志收集方面,结合hadoop非常灵活 RabbitMQ官网:http://www.rabbitmq.com/ 安装不多说了,可以下载Windows版本,或者linux版本 下载页面:http://www.rabbitmq.c…
如今前后端分离,动静分离 使用freemarker实现动静分离,nginx处理静态资源文件,提高效率 加载jar包 <!-- freemarker --> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>${freemarker.version}</version> </…
在使用redis时,有时回存在大量数据的时候,而且分类相同,ID相同 可以使用hset来设置,这样有一个大类和一个小分类和一个value组成 但是hset不能设置过期时间 过期时间只能在set上设置 // 向redis中添加缓存 jedisClient.set(REDIS_ITEM_KEY + ":" + itemId + ":" + ITEM_KEY, JsonUtils.objectToJson(item)); // 设置key的过期时间 jedisClient…
集群真是好好玩,最近一段时间天天搞集群,redis缓存服务集群啦,solr搜索服务集群啦,,,巴拉巴拉 今天说说zookeeper,之前搭建了一个redis集群,用了6台机子,有些朋友电脑跑步起来,有点卡,那这里主要说说伪分布式的集群,正式版的集群需要3台机子,我就一带而过说一说,搭建起来也是非常简单的 先来说说Zookeeper 什么是Zookeeper呢,顾名思义,动物园管理员嘛,什么hadoop大象啦,hive蜜蜂啦,pig小猪啦,都是用这货来管的,就是大数据Hadoop里面的嘛~ (题外…
solr,什么是solr,就是你要吃的东西“馊了”,不能吃了,out of date~ 嘛...开个玩笑,发音就是‘搜了’,专门用于搜索的一个开源框架,lunce就不说了,不好用,麻烦 来讲讲solr吧 目前最新更新的是6.0,4月7-8号更新的,哥不太喜欢用新出来的版本,多多少少会有bug,centos7出来后我至今使用的是6.5(实在无法忍受7啊...西吧) 6.0我也试着装了,但是会报错,日志文件找不到,自己新建一个也不行,去官方的jira看看,发现的确有这么一个bug,但是已经close…
什么是FastDFS FastDFS是一个叫余庆的哥们用c语言编写的一款开源的分布式文件系统 功能有冗余备份.负载均衡.线性扩容等,高可用.高性能 可以用FastDFS搭建一套高性能的文件服务器集群提供文件上传.下载   fastDFS又区别于Hadoop的HDFS,前者用于上传下载文件或者图片 后者用于解决大数据分析,提供解决方案(当然也能用来存储文件)   图中tracker就相当于仓库管理员,负责管理storage中的文件, storage中每个组又有一些文件服务器,这些都是平级的,没有主…
先来说说正向代理 就是普通的代理,记得高中年代偷跑去网吧是要办卡的 题外话: 就是这货...相信很多80同龄人都有吧...    回到正题,那正向代理就不让你直接访问网络,而需要登录一下网吧的某个系统,那个就是代理服务器,这样你才能上网 那反向代理其实就是这样的: 当你访问淘宝的时候,其实也有很多人在访问,那你不知道访问的是后台的那个IP,其实淘宝通过反向代理配置好了,不同的人访问就是不同的IP,只是域名不变而已 当然,这样也能实现负载均衡 配置如下,hosts配置自己的一个域名,本地的随便配…
一.什么是nginx 是一个C语言开发的HTTP反向代理服务器,性能非常高 一个俄罗斯的哥们开发的,官方提供的测试性能能够达到5W的并发,我的天呐~,实际测试差不多是2W,而淘宝的牛人可以优化到200W 运行效率非常好,占用的资源也非常低,运行稳定   二.Nginx的应用场景 有哪些 1.http服务器:Nginx是一个http服务可以独立提供http服务,可以做网页静态服务器,你可以放一些静态资源,比如HTML, JS, CSS, 图片 2.虚拟主机:可以实现在一台服务器虚拟出多个网站,同时…