package com.test.spring.beans;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Cashier {
private String name;
private String path;
private BufferedWriter writer;
public Cashier() {
System.out.println("*****");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public void openFile() throws FileNotFoundException {
System.out.println("openfile--->");
File logFile = new File(path, name + ".txt");
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(logFile, true)));
}
public void checkout(ShoppingCart cart) throws IOException {
double total =0;
for(Product product: cart.getItems()) {
total += product.getPrice();
}
writer.write(new Date() + "\t" + total + "\r\n");
writer.flush();
}
public void closeFile() throws IOException {
System.out.println("close---->");
writer.close();
}
public static void main(String args[]) throws IOException {
ApplicationContext appContext = new ClassPathXmlApplicationContext(
new String[] { "applicationContext.xml" });
Cashier c = (Cashier) appContext.getBean("cashier");
Product p = new Product("aa",11.1);
List<Product> ps = new ArrayList<Product>();
ps.add(p);
ShoppingCart sc = new ShoppingCart();
sc.setItems(ps);
c.checkout(sc);
System.out.println("checkout---->");
}
}
是通過 init-mehod he destory-method參數指定,init-method指定的方法在構造函數之後執行
<bean id="cashier" class="com.test.spring.beans.Cashier" init-method="openFile" destroy-method="closeFile">
<property name="name" value="cashier"/>
<property name="path" value="D://"/>
</bean>