spring笔记----看书笔记

上周末看了一章以前javaee轻量级的书spring部分,简单做了一些笔记

       //    ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");//从类加载路径搜索配置文件
	     ApplicationContext ac=new FileSystemXmlApplicationContext("src/bean.xml");//从相对路径或绝对路径搜索配置文件

设值注入:setter方法,xml的bean里property
构造注入:构造器,xml的bean里constructor-arg

bean.xml设置,通过setter,例如 public void setLyx(String name) 获取bean里面的值

国际化:

  //messageSource 和basenames名字都不能变
     
      message  //message、message_zh_CN.properties、message_en_US.properties
     


比如hello={0},通过String hi=ac.getMessage("hello", new String[]{"哈哈"},Locale.getDefault(Locale.Category.FORMAT));

ApplicationContextAware接口,Spring容器会在创建该Bean之后,
	自动调用该Bean的setApplicationContext()方法,调用该方法时,
	会将容器本身作为参数传给该方法

applicationcontext事件机制:ApplicationListener监听ApplicationEvent事件类

spring的作用域有:
singleton:springioc容器中,作用的bean只生成一个实例
prototype:每次获取该prototype作用域bean都生成新的一个实例
request:一次http对话,request作用域的bean只生成一个bean实例
session:一次http对话,session作用域的bean只生成一个bean实例
global session:每个全局的httpsession对应一个bean实例

自动装配:autowire,default-autowire
no:必须通过ref元素定义
byName:通过bean的id进行setter该方法名字
byType:包含不要Name,直接setter就可以了
constructor:和byTpye相似,找不到与构造器参数类型匹配的bean就抛异常
autodetect:根据bean内部决定使用constructor或byType

嵌套Bean:防止某个bean被访问,把该bean放在有name的bean 内部




注解配置Annotation:
@Configuration:修饰一个java类
@Bean:修饰一个方法,有返回值,构成了一个bean
@Value:修饰一个Field,相当于为配置一个变量
@Import:导入其他java配置类
@Scope:修饰一个方法,指定对应的Bean的生命域
@Lazy:修饰一个方法,指定对应的Bran是否需要好延迟初始化
@DependsOn:初始化对应的Bean之前初始化指定的Bean
@ImportResource:加载xml配置文件

spring创建bean的三种方式:调用构造器,调用静态工厂方法,调用实例工厂方法

静态工厂方法:
   






实例工厂方法:





抽象bean不能被实例化。抽象bean的价值在做父bean被继承,配置设置成abstract="true"

spring里bean继承与java继承区别:前者是对象与对象之间的关系,后者是类与类之间的关系;前者可以是不同类型,后者子类可看做一个特殊的父类;前者子bean不能作父bean使用,后者子类可以完全当作父类实例使用。

Spring中bean容器的生命周期
注入依赖关系之后的行为有:使用init-method属性、实现InitializingBean接口
bean销毁之前的行为有:使用destroy-method属性,实现DisposableBean接口

lookup-method方法:bean定义为抽象类里面有抽象方法名与lookup-method的方法名相同。解决singleton与prototype作用域不同步

获取其他bean的属性值





或者




获取Field(targetClass,targetField,targetObject)的值






简化配置

获取方法的返回值MethodInvokingFactoryBean

xml的bean配置才用p:和c:和util:命名简化配置

  

你可能感兴趣的:(spring笔记----看书笔记)