复习Spring框架的用法
模块结构如图:
代码如下:
package com.bank.dao; public interface IUserDao { int addInsert(); }
package com.bank.dao.impl; import com.bank.dao.IUserDao; public class UserDaoImpl implements IUserDao { public int addInsert() { System.out.println("UserDaoImpl 执行了..." ); return 0; } }
配置文件:配置文件名称按spring的规范applicationContext.xml
<?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"> <!-- id为类名 class 为类的全限定类名 bean标签声明后即当前类被spring容器管理 --> <bean id="IUserDao" class="com.bank.dao.impl.UserDaoImpl" ></bean> </beans>
POM文件中的引入Spring的核心包和junit包
测试代码:
package com.bank.test; import com.bank.dao.IUserDao; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class UserServiceTest { @Test public void test01() { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); IUserDao iUserDao = context.getBean("IUserDao", IUserDao.class); iUserDao.addInsert(); } }
这里打断点截图展示一下spring中的context底层是啥?
底层是以Key和Value放入到了ConcurrentHashMap中,并且保证了线程的安全。