目录
newInstance和new的区别
newInstance: 弱类型。低效率。只能调用无参构造。
new: 强类型。相对高效。能调用任何public构造。
dom4j+xpath解析xml文件
//dom4j+xpath解析xml文件
private void parseXml(String fileName) {
// 得到解析器 SaxReader
SAXReader saxReader = new SAXReader();
// 得到需要被解析的配置文件的URL
URL url = this.getClass().getClassLoader().getResource(fileName);
try{
// 解析配置文件,返回Document对象
Document document = saxReader.read(url);
// 通过XPath语法,得到beans标签下的所有bean标签 beans/bean
XPath xPath = document.createXPath("beans/bean");
// 通过指定语法解析,得到List (element)
List<Element> elements = xPath.selectNodes(document);
// 遍历List<Element>集合,得到bean标签的id属性值与class属性值,并设置MyBean对象中
if (elements != null && elements.size() > 0) {
// 实例化集合
myBeanList = new ArrayList<>();
for (Element element : elements) {
// 通过属性名获取对应的属性值
String id = element.attributeValue("id");
String clazz = element.attributeValue("class");
// 得到MyBean对象
MyBean myBean = new MyBean();
myBean.setId(id);
myBean.setClazz(clazz);
// 将myBean设置到集合中
myBeanList.add(myBean);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
spring开启自动扫描包,并设置扫描的范围
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<!-- 开启自扫描,并设置扫描范围 -->
<context:component-scan base-package="com"/>
</beans>