2012年11月26日
摘要: 在bean文件可以引入properties(key=value)文件的值,${key}然后还需要添加这一句:<context : property-placeholder location="classpath:上面引入properties文件的绝对路径">如果是多个properties:<context : property-placeholder location="classpath:上面引入properties文件的绝对路径,classpath:上面引入properties文件的绝对路径”> 阅读全文
posted @ 2012-11-26 16:59 lee0oo0 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 启用注解:在<bean>配置中添加<context:annotation-config/> 阅读全文
posted @ 2012-11-26 16:58 lee0oo0 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 通过构造器注入值:<bean> <constructor-args index="参数的顺序,从0开始" type="参数类型" value="值" ref="对象类型"/><bean>自动装配(autowire):1.autowire =byName;例,a中有一个基本类型属性,和一个引用类型属性(dog),这里只配基本类型的<bean id="a" class="A.a" autowire="byNmae"&g 阅读全文
posted @ 2012-11-26 16:58 lee0oo0 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 1. 属性注入的是数组,读取的时候需要遍历<property name=""> <list> <value></value><value></value><value></value><value></value> </list></property>2. 属性注入的是List,读取的时候需要遍历<property name=""> <list> <ref bean="&q 阅读全文
posted @ 2012-11-26 16:57 lee0oo0 阅读(200) 评论(0) 推荐(0) 编辑
摘要: Bean(B)继承了父类Bean(A),那么这种形式在配置bean并且为bean设置的时候如何体现呢?在配置Bean(B)的时候,添加属性parent=“Bean(A)对象”,那么Bean(B)就能继承Bean(A)的属性及其值。如果Bean(B)需要设置属于自己的值,可是设置,他会覆盖Bean(A)的。 阅读全文
posted @ 2012-11-26 16:57 lee0oo0 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 实现BeanPostProcessor接口并实现其中的方法,然后在xml文件中配置bean,则可以实现对所有bean的编程,也就是说每个bean实例化的时候都会执行 BeanPostProcessor里面的方法。注意,实现的这两个方法before与after并不是一起调用的,实现了before方法后还可以(不一定)执行两个方法(跟着分别列出说)后再调用after方法。1. 实现InitialzingBean接口,实现afterPropertiesSet方法。2. 自己定制的方法,在bean设置里面有个属性init-method=“方法名”,然后在代码实现这个方法public void 方法名( 阅读全文
posted @ 2012-11-26 16:56 lee0oo0 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 实现DisposableBean接口,实现其方法,能在bean被调用完将要销毁的时候调用。可以在这里释放资源,关闭什么等操作。不过也可以使用定制方式实现上面的操作。在bean配置中添加属性destroy-method=“方法名”。在加载bean的类当中实现这个方法。自定制的方法可以不在xml文件里面配置,而是以注解的方式@PreDestroypublic void 方法名(){}注意:以上的bean生命周期都是在使用ApplicationContext加载bean的时候是这样,如果是使用BeanFactory的不完全一样,少了BeanPostProcessor 阅读全文
posted @ 2012-11-26 16:56 lee0oo0 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 其他常用的加载xml:1. ClassPathXmlApplicationContext:从类路径中加载。2. FileSystemXmlApplicationContext:从文件系统加载。实例中需要传入绝对路径3. XmlWebApplicationContext:从未被系统中加载。 阅读全文
posted @ 2012-11-26 16:54 lee0oo0 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 实现BeanNameAware接口,复写public void setBeanName(String arg0){}方法,参数arg0是获得正在加载的那个bean的id实现BeanFactoryAware接口,复写public void setBeanFactory(BeanFactory arg0) throws BeansException{}方法,就可以获取bean工厂实现ApplicationContextAware接口,复写public void setApplicationContext(ApplicationContext arg0) throws BeansException{ 阅读全文
posted @ 2012-11-26 16:54 lee0oo0 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 1. 引入spring的开发包(最少配置spring.jar该包把常用的jar都包括,还要写日志包common-logging.jar)2. 创建spring的一个核心文件applicationContext.xml,该文件一般放在src目录下,该文件中引入xsd文件3. 配置bean<beans> <bean id="类实例" class="类名"> <property name="变量名"> <value>变量名的值<value> <bean></bea 阅读全文
posted @ 2012-11-26 16:53 lee0oo0 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 使用bean工厂获得bean的方法:BeanFactory factory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));factory.getBean("");与ClassPathXmlApplicationContext加载的不同是,这个方法只在getBean的时候才会创建Bean对象(针对于bean的scope是singleton,如果是prototype的话无区别)。一般程况下还是使用ClassPathXmlApplicationContext方法,而当 阅读全文
posted @ 2012-11-26 16:53 lee0oo0 阅读(144) 评论(0) 推荐(0) 编辑
摘要: Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。 Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面。1,利用invalidate()刷新界面 实例化一个Handler对象,并重写ha.. 阅读全文
posted @ 2012-11-26 10:16 lee0oo0 阅读(16495) 评论(2) 推荐(0) 编辑