欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java,

来源: javaer 分享于  点击 33173 次 点评:229

Java,


1. Cookie和Session的区别

a.Cookie的数据是存放在客户端的浏览器中,Session的数据是存放在服务器中
b.Cookie是不安全的,应为他对用户是可见的,别人可以分析本地的Cookie并利用存在本地的Cookie进行欺骗,从安全性的角度考虑,首选Session
c.Session会在一定时间内存在服务器中,如果用户量访问过大会给服务器造成较大的压力,所有从性能上考虑首先Cookie
d.单个Cookie在客户端存放的数据不能超过4k,大部分浏览器都限制一个站点最多保存20个Cookie

Spring部分

1.Spring用到了哪些设计模式

第一种:简单工厂模式(静态工厂模式)
第二种:工厂方法(Factory Method)
第三种:单例模式(singleton)
第四种:适配器(Adapter)
第五种:包装器(Decorator)
第六种::代理模式(Proxy)
第七种:观察者模式(Observer)
第八种:策略模式(Strategy)
第九种:模板模式(Template Method)
第一种:简单工厂模式(静态工厂模式) (非23种设计模式中的一种)
Spring中的BesnFactory就是一个简单工厂模式的体现,根据传入的一个唯一标识来获取一个bean对象,但是否是在传入参数之前创建还是之后创建要根据具体情况来定。如下配置就是在Hello类中创建一个itBean。

<beans>
	<bean id ="singletonBean" calss="com.it.Hello">
		<constructor-arg>
			<value>
				Hello this is singletonBean!!
			<value>
		<constructor-arg>
	<bean>
	<bean id="itxxzBean" class="com.itxxz.HelloItxxz" singleton="false">
        <constructor-arg>
            <value>Hello! 这是itxxzBean! value>
        </constructor-arg>
    </bean>
</beans>
<beans>

实现原理:

  • bean容器阶段
  • 读取配置bean的xml配置文件,将bean元素分别转换成一个BeanDefinition对象
  • 然后通过BeanDefinitionRegistry将这些bean注册到beanFactory中,保从到他的一个ConcurrentHashMapp中
  • 将BeanDefinition注册到beanFactoryPostProcessor在此处插入我们定义的代码典型的例子就是:PropertyPlaceholderConfigurer,我们一般在配置数据库的dataSource时使用到的占位符的值,就是它注入进去的。
  • 容器中bean的实例化对象
  • 实例化对象主要是通过反射或者是CGLIB对bean进行实例化,在这个阶段Spring又给我们暴露了很多的扩展点:
  • 各种的Aware接口,比如 BeanFactoryAware,对于实现了这些Aware接口的bean,在实例化bean时Spring会帮我们注入对应的BeanFactory的实例。
  • BeanPostProcessor接口,实现了BeanPostProcessor接口的bean,在实例化bean时Spring会帮我们调用接口中的方法。
  • InitializingBean接口,实现了InitializingBean接口的bean,在实例化bean时Spring会帮我们调用接口中的方法。
  • DisposableBean接口,实现了BeanPostProcessor接口的bean,在该bean死亡时Spring会帮我们调用接口中的方法。

作者:iCoding91
来源:CSDN
原文:https://blog.csdn.net/caoxiaohong1005/article/details/80039656

第二种:工厂方法(Factory Method)
通常由应用程序直接new对象,为了将对象的创建和使用进行分离,采用工厂方法模式,即应用程序将对象的创建即初始化职责交个工厂对象。
一般情况下,应用程序有自己的工厂对象创建bean,如果将应用程序自己的工厂对象交给Spring去管理,那么Spring管理的就不是普通的bean而是工厂Bean
例如:

import java.utilRandom;
	public class StaticFactory{
		public static Integer createRandom(){
				return new Integer(new Random().nextInt());
		}
	}
	
//建一个config.xml配置文件,将其纳入Spring容器来管理,需要factory-method指定静态方法名称
<bean id="random"
class="example.chapter3.StaticFactoryBean" factory-method="createRandom" //createRandom方法必须是static的,才能找到 scope="prototype"
/>
测试:
public static void main(String[] args) {
      //调用getBean()时,返回随机数.如果没有指定factory-method,会返回StaticFactoryBean的实例,即返回工厂Bean的实例       XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("config.xml"));       System.out.println("我是IT学习者创建的实例:"+factory.getBean("random").toString());
}
	

第三种:单例模式(singleton)
第四种:适配器(Adapter)
第五种:包装器(Decorator)
第六种::代理模式(Proxy)
第七种:观察者模式(Observer)
第八种:策略模式(Strategy)
第九种:模板模式(Template Method)

相关文章

    暂无相关文章
相关栏目:

用户点评