IDeviceWriter.java
package spring;
public interface IDeviceWriter {
public void saveToDevice();
}
Business.java
package spring;
public class Business {
private IDeviceWriter writer;
public void setDeviceWriter(IDeviceWriter writer) {
this.writer = writer;
}
public void save(){
//...
writer.saveToDevice();
}
}
FloppyWriter.java
package spring;
public class FloppyWriter implements IDeviceWriter {
@Override
public void saveToDevice() {
// TODO Auto-generated method stub
//实际存储代码
System.out.print("A盘存储");
}
}
UsbDiskWriter.java
package spring;
public class UsbDiskWriter implements IDeviceWriter {
@Override
public void saveToDevice() {
// TODO Auto-generated method stub
//实际存储代码
System.out.print("U盘存储");
}
}
BusinessFactory.java
package spring;
import java.io.FileInputStream;
import java.util.Properties;
public class BusinessFactory {
private static BusinessFactory factory;
private Properties props;
private Business business;
private IDeviceWriter writer;
private BusinessFactory()throws Exception{
props=new Properties();
props.load(new FileInputStream("config.properties"));
String businessClass=props.getProperty("business.class");
String writerClass=props.getProperty("writer.class");
business=(Business)Class.forName(businessClass).newInstance();
writer=(IDeviceWriter)Class.forName(writerClass).newInstance();
business.setDeviceWriter(writer);
}
public static BusinessFactory getInstance()throws Exception{
if(factory==null){
factory=new BusinessFactory();
}
return factory;
}
public Business getBusiness(){
return business;
}
public IDeviceWriter getWriter(){
return writer;
}
}
config.properties
business.class=spring.Business
writer.class=spring.UsbDiskWriter
Test.java
package test;
import spring.Business;
import spring.BusinessFactory;
public class Test {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
Business business=BusinessFactory.getInstance().getBusiness();
business.save();
}
}
分享到:
相关推荐
当我们的应用程序被打包成JAR文件后,有时我们需要从JAR内部读取配置文件,例如application.properties或application.yml。本文将深入探讨如何在Spring框架中实现这一功能。 首先,理解Spring的资源配置。Spring...
在.NET Core项目的Program.cs文件中,需要编写代码来读取配置文件。具体的步骤如下: - 创建ConfigurationBuilder实例,并通过SetBasePath和AddJsonFile方法设置配置文件的基础路径和文件名。 - 使用Build方法构建...
如果你的项目使用了Spring框架,可以利用其强大的IoC容器来读取配置文件。 ```java import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org....
容器通过读取XML配置文件来创建、初始化对象,并根据配置自动装配对象之间的依赖。这样,开发者无需在代码中手动创建和管理对象,而是由Spring容器负责,从而降低了耦合度。 XML配置是Spring早期的主要配置方式,...
4. **反射机制**:在应用程序启动时,读取配置文件并使用C#的反射API创建对象实例。反射允许我们在运行时动态加载类型,并创建其实例。 ```csharp using System.Configuration; using System.Reflection; // 读取...
1、在maven工程导入spring坐标 2、dao层的内容与结构 接口 实现类 3、server层的内容与结构 4、创建properties文件 5、配置文件样式 标签头代码:
本篇文章将深入探讨Spring配置文件中的归类,主要包括IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)两个重要概念。 ### 1. IOC (控制反转) IOC是Spring的核心特性,...
1. **解析配置文件**:读取XML或自定义格式的配置文件,提取"id"、"class"、"name"和"ref"等信息。 2. **创建Bean工厂**:根据解析的信息,创建一个容器(如Map)来存储Bean的定义,每个定义包含对象的类信息和可能...
然而,有时我们需要从应用外部读取配置文件,比如`xml`、`txt`、属性文件或者是网络上的资源。这时,我们可以使用`FileSystemXmlApplicationContext`来实现这个功能。 首先,让我们来看看如何使用`...
当涉及到配置管理时,Spring提供了强大的能力来读取和处理多个属性文件,以便将这些配置信息注入到bean中。在不同的Spring版本中,加载多个属性文件的方法有所不同。以下是针对不同版本Spring加载多个属性文件的详细...
1. **创建XML配置文件**:配置文件通常包含类的声明及其依赖关系。例如: ```xml ``` 2. **解析XML**:使用XPath解析器读取并处理XML文件。例如,获取所有`<bean>`元素,然后为每个元素找到其`id`和`...
1. **读取配置**:Spring容器读取XML、Java配置或基于注解的配置信息,构建BeanDefinition对象,其中包含了对象的类名、属性、依赖等信息。 2. **Bean实例化**:根据BeanDefinition,Spring容器创建Bean实例,可以是...
在SSM框架的配置文件中,主要涉及到以下几个关键部分: 1. **Spring配置文件**: - `applicationContext.xml`:这是Spring的核心配置文件,用于定义Bean的创建、依赖注入以及服务的声明。在这里,你会看到如数据源...
IoC容器通过读取XML配置文件来理解对象及其依赖关系,然后自动进行实例化和装配。这样,开发者不再需要手动创建和管理对象,而是将这些控制权交给了Spring容器,因此被称为"控制反转"。 描述中的"Spring在Web端的...
这个简单的实现可能包含解析配置文件,根据配置信息创建和管理Bean的方法。 接着,`Bean.java`文件可能代表了被管理的Java对象,即IoC容器中的Bean。在Spring中,Bean通常通过注解或XML配置文件进行定义,包括其类...
5. ** ApplicationContext**:Spring应用上下文(`ApplicationContext`)是IoC容器的接口,负责读取配置文件并创建bean。在案例中,我们可能会看到如何通过`ClassPathXmlApplicationContext`加载配置文件并获取bean...
2. 容器初始化:Spring容器会读取配置文件并解析其中定义的Bean,然后在容器内部创建Bean的实例并管理它们。 3. 注入依赖:当Bean需要使用到其他的Bean时,容器负责注入这些依赖,可以通过构造函数注入或者通过...
1. **解析配置**:读取XML配置文件,解析出bean的定义。 2. **创建bean**:根据bean定义创建相应的对象,可以使用反射API来调用构造函数。 3. **依赖注入**:查找并注入bean之间的依赖关系。 4. **管理bean的生命...
在本压缩包中,我们找到了一系列与Spring相关的配置文件,这些文件在构建JavaWeb应用时起着至关重要的作用。 1. `jdbc.properties`: 这个文件通常用于存储数据库连接的相关信息,如URL、用户名、密码等。它是Spring...