Spring 流程图
一.Spring 的作用? 将现有的技术集成起来
二.第一个简单的demo
1.在工程中添加spring组建 MyEclipse->add Struts 2.5
2.写一个接口测试类IHelloService 定义一个sayHello();
3.写一个类HelloServiceImpl 实现接口IHelloService 实现sayHello()方法;
4.配置applicationContext
5.建立一个测试类TestMain
- public class TestMain {
- /**
- * 测试第一个Spring demo
- */
- public static void main(String[] args) {
- // 启动Spring容器
- // 告知Spring容器,读取配置文件
- ApplicationContext ctx = new ClassPathXmlApplicationContext(
- "applicationContext.xml");
- // 从Spring容器中获取helloService对应的对象
- Object obj = ctx.getBean("helloService");
- // 使用对象
- IHelloService helloService = (IHelloService)obj;
- System.out.println(helloService.sayHello("杨超"));
- }
- }
输出结果:
Hello,杨超
二.配置文件分开编写后整合方法
- /*配置文件分开编写后整合的两种方法*/
- String apps[] = {"applicationContext.xml","applicationContext_1.xml"};
- ApplicationContext ctx1 = new ClassPathXmlApplicationContext(apps);
- ctx1 = new ClassPathXmlApplicationContext("app*.xml");
别名效果:
- <alias name="helloService" alias="abc" />
调用时: Object obj = ctx.getBean("abc");
三.
1.new XXX();
2.new XXX(xxx xx);
1)若在HelloServiceImpl中添加了有参构造器,applicationContext.xml中若没配置就会提示以下错误
2)在applicationContext.xml中配置构造器中填入参数
- <bean id="helloService" class="cn.com.spring.service.impl.HelloServiceImpl">
- <constructor-arg>
- <value>谭毓燕</value>
- </constructor-arg>
- </bean>
结果:
谭毓燕说:Hello,杨超
3.通过静态方法产生一个对象(单例模式,工厂模式)
4.通过别的对象
- package cn.com.spring.service.factory;
- import cn.com.spring.service.IHelloService;
- import cn.com.spring.service.impl.HelloServiceImpl;
- /**
- * 1.通过静态方法产生一个对象(单例模式,工厂模式)
- * 2.根据对象产生另外一个对象
- * @author YC
- *
- */
- public class HelloServiceFactory {
- /**
- * 单例模式
- */
- private static HelloServiceFactory factory = null;
- private HelloServiceFactory() {
- }
- public static HelloServiceFactory getInstance() {
- if (factory == null) {
- factory = new HelloServiceFactory();
- }
- return factory;
- }
- /**
- * 根据对象产生另外一个对象
- */
- public IHelloService createHelloService() {
- IHelloService service = null;
- service = new HelloServiceImpl("谭毓燕");
- return service;
- }
- }
完整的applicationContext.xml配置文件
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns=""
- xmlns:xsi="" xmlns:p=""
- xsi:schemaLocation=" /spring-beans-2.5.xsd">
- <!-- 通过有参构造器产生对象-->
- <bean id="helloService" class="cn.com.spring.service.impl.HelloServiceImpl">
- <constructor-arg>
- <value>谭毓燕</value>
- </constructor-arg>
- </bean>
- <!--通过静态方法产生对象-->
- <bean id="helloServiceFactory" class="cn.com.spring.service.factory.HelloServiceFactory"
- factory-method="getInstance">
- </bean>
- <!-- 调用一个对象的方法产生另外一个对象 -->
- <bean id="helloService2" class="cn.com.spring.service.factory.HelloServiceFactory"
- factory-bean="helloServiceFactory" factory-method="createHelloService"></bean>
- </beans>
后两种测试时候只需改变object obj = ctx.getBean("xxx");
手写下测试代码方便理解
- //启动Spring容器
- //告知Springle容器,读取配置文件
- //ApplicationContext ctx = new ClassPathXmlApplicationContext("app*.xml");
- //从Spring容器中获取helloService对应的对象
- Object obj = ctx.getBean("xxx");
- //使用对象
- IHelloService hello = (IHelloService)obj;
- sys(hello);
- public class TestMain {
- public static void main() {
- ApplicatonContext ctx = new ClassPathXmlApplicationContext(app*.xml);
- Object obj = ctx.getBean("xxx");
- IHelloService helloService = (IHelloService)obj;
- System.out.println(helloService.sayHello("xxx"));
- }
- }
阅读(2126) | 评论(3) | 转发(0) |