出现这个错误我查了好久,重构了项目,检查了jdk的版本,maven依赖排除一个个错误,都没有问题后面查资料在Resourse后面加一个class就可以了
public class MyBatisDemo {
public static void main(String[] args) {
String resource="mybatis-config.xml";
InputStream inputStream = Resources.class.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
}
其实这两种写法唯一的区别就在路径定位资源上面,
-
Resources.class.getResourceAsStream(resource);
使用的是类的相对路径来定位资源。Resources.class表示获取Resources类的Class对象,然后使用该Class对象的getResourceAsStream方法来定位资源。 -
Resources.getResourceAsStream(resource);
使用的是绝对路径来定位资源。getResourceAsStream方法是Class类的一个静态方法,直接使用资源的绝对路径定位资源。
所以,区别在于资源定位的方式。如果资源文件位于与Resources类相同的包路径下,这两种写法都会找到资源文件并返回相应的输入流。如果资源文件位于其他位置,需要根据不同的定位方式来选择适合的方法。