发表于: 2018-01-11 22:54:32

1 588


完成

1.跑通一个springdemo(https://www.cnblogs.com/huaizuo/p/4920308.html

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <dependencies>

       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-context</artifactId>
           <version>4.1.6.RELEASE</version>
       </dependency>

       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-jdbc</artifactId>
           <version>4.1.6.RELEASE</version>
       </dependency>

       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-tx</artifactId>  <!--spring transaction-->
           <version>4.1.6.RELEASE</version>
       </dependency>

   </dependencies>

</project>

HelloWorld类

public class HelloWorld {
private String name;

   public void setName(String name) {
this.name = name;
   }

public void printHello() {
System.out.println("Spring 3 : Hello ! " + name);
   }
}

App类

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;//ClassPathXmlApplicationContext类是用来获取src下的xml文件的,在App.java有调用

public class App {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("SpringBeans.xml");

       HelloWorld obj = (HelloWorld) context.getBean("helloBean");
       obj.printHello();
   }
}

结果

2.学习Spring的IOC原理,跑了一个demo(http://blog.csdn.net/quechao123/article/details/4427854)

(https://www.cnblogs.com/superjt/p/4311577.html),这个网站很赞,介绍IOC很通俗。

场景:现在有个磁盘输出的业务,客户端需要通过2个业务对象进行输出。
一个是通过Floppy(软盘),另一个是通过USB接口。


接口IDeviceWriter

package Spring.DependentInjection;

public interface  IDeviceWriter {
public void saveToDevice();
}

软盘类

package Spring.DependentInjection;

public class FloppyWriter implements IDeviceWriter {
public void saveToDevice() {
System.out.println("储存至软盘…");//为什么结果是这个,不是另一个,都一样的接口啊???
   }
}

USB类

package Spring.DependentInjection;

public class UsbDiskWriter implements IDeviceWriter {
public void saveToDevice() {
System.out.println("储存至移动硬盘…");
   }
}

BusinessBean类

package Spring.DependentInjection;

public class BusinessBean {
private IDeviceWriter writer;

   public void setDeviceWriter(IDeviceWriter writer) {
this.writer = writer;
   }

public IDeviceWriter getDeviceWriter() {
return writer;
   }

public void save() {
if (writer == null) {
throw new RuntimeException("DeviceWriter needed...");
       }
writer.saveToDevice();
   }
}

配置文件businessFactoryConfig.xml

<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

   <bean id="helloBean" class="HelloWorld">
       <property name="name" value="huaizuo" />
   </bean>

   <bean id="floppy" class="Spring.DependentInjection.FloppyWriter"/>
   <bean id="usb" class="Spring.DependentInjection.UsbDiskWriter"/>
   <bean id="businessBean" class="Spring.DependentInjection.BusinessBean">
       <property name="deviceWriter">
           <ref bean="floppy"/>
       </property>
   </bean>

</beans>

客户端代码

package Spring.DependentInjection;

public class UsbDiskWriter implements IDeviceWriter {
public void saveToDevice() {
System.out.println("储存至移动硬盘…");
   }
}

结果


问题

现在的情况是这几天跑通了很多Demo,但都是对照他人的例子自己修修改改,其中的很多步骤,概念,语法都没有搞清楚,只是知道哪里该出现哪个名词,方法,照着这样写没错。

我想暂时跳过这些难点,接着做任务,以后再不断回顾这些知识。但又担心这样会导致基础不牢固,难以继续。


收获

进一步了解了Spring相关知识。


计划

Spring接着了解,接着往下做任务。



返回列表 返回列表
评论

    分享到