spring的特点
ApplicationContext对象
可以理解为ApplicationContext对象就是一个spring容器,它包含了所依赖的所有的Javabean对象。 它的功能有管理,装配bean,加载资源文件,实现监听等。 一般通过读全局配置文件创建ApplicationContext对象
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
ApplicationContext ac = new FileSystemXmlApplicationContext("E:\\workspaces\\02.spring-ioc-helloworld\\src\\applicationContext.xml");
spring bean 的作用域
singleton 作用域:表示该bean对象在一个spring容器中只有一个,是唯一的。 prototype作用域:每一次获取(注入bean对象,调用getBean()方法)都会产生一个新的bean实例,相当与一个new的操作。 request作用域:每一次HTTP请求都会产生一个新的bean,当请求结束该bean就销毁。 session作用域:每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效。 global session作用域:它被所有构成某个portlet web应用的各种不同的portlet所共享。
spring bean的生命周期
首先,容器启动后会对scope为singleton且非懒加载的bean进行实例化。 按照bean定义信息配置信息,注入所有的属性。 接着如果bean实现了一些接口,就会调用对应的一些方法。 然后,对于scope为singleton的bean会在ioc容器中缓存一份该bean的实例,而对于scope为prototype的bean,每一次调用都会new一个新的对象,其生命周期交给调用方管理了。 容器关闭后,如果bean实现了相关接口,调用相关方法,最终整个生命周期结束。
标题spring用到的设计模式
ioc容器用到了 工厂模式与单例模式。 AOP用到了动态代理模式。 监听器用到了观察者模式。
nginx的四大功能
反向代理 反向代理方式是指以代理服务器来接受客户端的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给对应客户端,此时代理服务器对外就表现为一个反向代理服务器。 简单来说就是真实的服务器不能直接被外部网络访问,所以需要一台代理服务器,而代理服务器能被外部网络访问的同时又跟真实服务器在同一个网络环境,当然也可能是同一台服务器,端口不同而已。 负载均衡 负载均衡也是Nginx常用的一个功能,负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。 简单而言就是当有2台或以上服务器时,根据规则随机的将请求分发到指定的服务器上处理,负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。 HTTP服务器(动静分离) Nginx本身也是一个静态资源的服务器,当只有静态资源的时候,就可以使用Nginx来做服务器,同时现在也很流行动静分离,就可以通过Nginx来实现。 将前端部分的静态资源部署在nginx上,将后端部分动态资源部署在tomcat上,实现前后端分离部署。 正向代理 正向代理,意思是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标,然后代理向原始服务器转交请求并将获得的内容返回给客户端。 当你需要把你的服务器作为代理服务器的时候,可以用Nginx来实现正向代理 正向代理代理的是客户端,反向代理代理的是服务端。