Spring学习-01课下-Spring通过手工导入jar,实例学习IOC思想。

47 阅读1分钟

Intellij导入Spring jar包

1、Setting->Project Structure ->Libraries ->+(Add)

2、选中Jar核心包

Spring XML配置

1、File -> new -> XML Config File -> Spring Config 创建XML文件

2、添加Bean信息

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean class="dao.impl.UserDaoOracleImpl" name="userDaoOracle"></bean>
    <bean class="dao.impl.UserDaoMysqlImpl" name="userDaoMysql"></bean>
    <bean class="service.impl.UserService" name="userService">
<!--        <property name="dao" ref="userDaoOracle"></property>-->
        <property name="dao" ref="userDaoMysql"></property>
    </bean>
</beans>

一个bean 对应一个类

property name="类属性名" ref="指定实现的对象类"

程序实现

ApplicationContext ioc = new ClassPathXmlApplicationContext("springxml.xml");
IUserService bean = ioc.getBean(IUserService.class);
bean.getUser();

总结

将传统的 new 类名 实例化对象 交给 Spring Bean实现。 通过XML文件统一管理类 实现解耦 依赖倒置。

备注

1、通过xml property rel 实现相应类 要设置相应的get和set 方法。

2、报错信息: `报错信息: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.springframework.context.support.AbstractApplicationContext.(AbstractApplicationContext.java:163) at org.springframework.context.support.AbstractApplicationContext.(AbstractApplicationContext.java:237) at org.springframework.context.support.AbstractRefreshableApplicationContext.(AbstractRefreshableApplicationContext.java:92) at org.springframework.context.support.AbstractRefreshableConfigApplicationContext.(AbstractRefreshableConfigApplicationContext.java:59) at org.springframework.context.support.AbstractXmlApplicationContext.(AbstractXmlApplicationContext.java:62) at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:141) at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:85) at test.MyTest.main(MyTest.java:14) Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory at java.net.URLClassLoader.findClass(URLClassLoader.java:387) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ... 8 more

Process finished with exit code 1`

需要加载 spring-jcl-5.2.6.BUILD-SNAPSHOT.jar 解决。