//数据访问实现类
public class EmpDaoA implements EmpDao {
@Override
public List listEmp() {
//1. 加载并解析emp.xml
String file = this.getClass().getClassLoader().getResource("emp.xml").getFile();
System.out.println(file);
List empList = XmlParserUtils.parse(file, Emp.class);
return empList;
}
}
里面的
String file = this.getClass().getClassLoader().getResource("emp.xml").getFile();
什么意思
找到和你的当前类这段代码是在Java中获取资源文件(这里是一个XML文件)的路径。
this.getClass().getClassLoader() 返回一个类加载器对象,可以用于从类路径中加载类和资源。
getResource("emp.xml") 将在类路径中搜索名为“emp.xml”的资源文件,并返回一个URL对象,该URL对象指向该资源的位置。
getFile()方法,可以获取该资源文件的路径字符串。该路径字符串可以在程序中被使用,以便读取该资源文件。
这行代码的作用是获取类路径下的"emp.xml"文件的绝对路径。
首先,getClassLoader()方法返回一个ClassLoader对象,该对象是用于加载类的Java类加载器。接下来,getResource("emp.xml")方法通过ClassLoader对象获取指定名称的资源文件的URL,其中指定名称是相对于类路径的。getFile()方法获取URL的文件路径,该路径是URL的字符串表示形式,去掉了协议、主机名和端口号等信息,只剩下本地文件系统中的路径信息。最终,这个方法返回的是一个字符串,表示指定资源文件在本地文件系统中的绝对路径。
在这个代码中,获取到emp.xml文件的绝对路径后,XmlParserUtils.parse()方法会解析该文件,并将解析后的数据以List的形式返回给调用者。
这行代码的作用就是获取一个 XML 文件的路径以便后续的操作能够读取并解析这个文件
死锁指A线程想使用资源但是被B线程占用了,B线程线程想使用资源被A线程占用了,导致程序无法继续下去了。