设置eclipse常用的新建文件,方便以后练习。window——perspective——Customize Perspective —— Menu Visibility:Class、Package、Java Project 、Interface、Source Folder、Enum Annotation、Css File、HTML File、JSP file、Filter、Spring Bean Configuration File。
1、新建动态web工程,new——Dynamic Web Project
2、导入spring基本jar包:①spring—beans、②spring—context、③spring—core、④spring—expression、⑤commons—logging
3、创建spring配置文件(在src目录下):new——spring Bean configuration File 命名为 beans.xml 或者 applicationContext.xml
每一个bean标签都对应一个类对象,class属性:指定是哪个类的对象,类的全类名
4、获取bean容器对象:ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
5、从容器对象中获取bean对象:Person bean0 = context.getBean(Person.class);
获取容器的三种方式:
①ClasspathXmlApplicationContext:默认加载src目录下的配置文件,常用的方式
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
②FileSystemXmlApplicationContex:默认加载本地磁盘上的配置文件的完整路径
ApplicationContext context = new FileSystemXmlApplicationContext("applicationContext.xml的绝对路径");
③XmlBeanFactory:通过bean工厂的方式。
Resource resource = new FileSystemResource("applicationContext.xml的绝对路径");
XmlBeanFactory context = new XmlBeanFactory(resource);
从bean容器中获取bean对象的两种方式:
①通过class属性,字节码方式:指定是哪个类的对象,class属性指定类的全类名。
②通过id属性或是name属性,object方式:id属性,表示bean对象在容器中的唯一标识符[identifier],该值必须是唯一的;name属性,表示该bean对象在容器中的名字,该值也是唯一的。
以上这两种方式的区别:①传递的参数不同,一个是字节码参数,另一个是传递字符串类型的id或者name值;②返回值不同,一个是字节码类型的对象,id和name是object。
容器中的bean对象的创建时机,是在获取容器对象的时候,bean底层原理是反射+XML解析,容器中的bean都是单例的。
6、bean标签的scope属性:作用范围
request:每一次请求,都会创建一个bean对象
session:每一次会话,都会创建一个bean对象
prototype:多例的,对象是在容器中获取对象的时候才被创建
singleton:单例的,单例是默认值,对象是在加载容器对象的时候创建的。
7、
外部bean:在beans标签内部的bean对象称之为外部bean,外部bean可以被任意bean对象引用。
内部bean:在bean标签的某个属性内部定义的bean对象,称之为内部bean,内部bean只能被对象的某个属性引用。
property标签:对象的普通属性用value属性赋值,引用类型的属性用ref属性赋值。
8、bean对象创建的三种方式:
①构造器,无参构造器和有参构造器。
②静态工厂,通过类的静态方法创建的对象。factory-method
③实例工厂,通过类对象的普通方法创建的对象。factory-bean——factory-method
9、属性赋值之构造器:
name指定属性的名称,index指定属性的位置,type指定属性的类型。通过这三个参数的组合,就可以确定任意一个构造器。
SPEL:Spring Expression Language:spring的表达式语言,语法:#{ }。
10、复杂属性赋值:
①数组:单值value;多值array标签+value
②List:单值value;多值list标签+value
③Set:单值value;多值set标签+value
④Map:键值对,map标签+entry,(key,value、key,value-ref、key-ref,value、key-ref,value-ref)