标签:
Spring是一款轻量级框架,代码入侵量很小,并且还是众多优秀的设计模式的组合(工厂、代理、模板、策略)。
a、导入核心jar包跟第三方依赖jar包。
b、配置文件
spring的配置文件只有一个:applicationContext.xml,放置的位置随意。
a、 核心API
ApplicationContext工厂类。
(1)ClassPathXmlApplicationContext(非web环境下)
(2)WebXmlApplicationContext(web环境下)
通过以上两个接口都可以获得工厂类,该工厂类是一个重量级资源,一个应用只应该创建一个。在运用了spring的项目中,所有用户所写的类,都应该通过ApplicationContext工厂类来生产。
b、代码示例
applicationContext.xml配置:
<bean id="first" class="xxxxx.xxxx.First"/>
java代码:
ApplicationContext ctx = new ClassPathXmlApplicationContext("/xxxx/applicationContext.xml"); First first = (First)ctx.getBean("first");
解释:
第一行通过ClassPathXmlApplicationContext读取spring配置文件获取applicationContext工厂类,参数为Spring配置文件的路径。
第二行则是由applicationContext工厂类来生产在配置文件中配置过的对象(根据id属性获得)。
控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。依赖注入应用比较广泛。
简单点来说,就是将成员变量赋值的控制权,从代码中转移到xml文件中去。这样做的好处是解耦和,其原理是工厂+反射。
a、8中基本类型+String
<bean id="user" class="xxxxx.User"> <property name="name"> <value>tom</value> </property> <property name="password"> <value>123456</> </property> <property name="age"> <value>20</value> </property> </bean>
<propery name="password" value="123123"/>
两种写法都可以。
b、数组
<property name="emails"> <list> <value>tom1@live.com</value> <value>tom2@live.com</value> <value>tom3@live.com</value> </list> </property>
c、set集合
<set> <value>123123</value> <value>123123</value> <value>123123</value> </set> //set标签内部的标签,取决于存放的数据类型,不一定是value
d、List集合
<list> <value>123123</value> <set> <value>123123</value> <ref local=""/> </list> //和set同理,内部的标签取决于存的数据类型
e、map集合
<map> <entry> <key><value>tom</value></key> <value>123123</value> </entry> </map> //一个entry节点代表一个键值对。
f、properties类型,等价于Map<Stirng,String>
<props> <prop key="key1" >value1</prop> <prop key="key2" >value2</prop> </props>
首先要在spring配置文件中创建所对应的类<bean id="" class="" />。然后再将其注入。
//java类,示例代码 public class UserService{ private UserDao userDao; get、set }
//spring配置文件 <bean id="userDao" class="xxxx.UserDao"/> <bean id="userService" class="xxxx.UserService"> <property name="userDao"> <ref local="userDao"> </property> </bean>
用户自定义的类型要用<ref local="">标签来注入。
<bean id="user" class="xxxx.User" > <constructor-arg> <value>xxxx</value> </constructor-arg> </bean>
标签:
原文地址:http://www.cnblogs.com/liquidxu/p/5908948.html