新建一个maven项目
1.创建一个接口
- public interface UserDao {
-
-
- void play();
-
-
- }
2.dao层接口的实现类
- public class MysqlImpl implements UserDao{
-
- //重写抽象方法
- @Override
- public void play(){
- System.out.println("实现类,实现接口的抽象方法!!!!");
- }
-
-
-
-
- }
3.业务层的接口
- // 业务层的实现接口
- public interface ServicesDao {
-
-
- void play();
-
-
- }
业务层实现类
- public class ServicesImpl implements ServicesDao{
-
-
-
-
- @Override
- public void play(){
- userDao.play();
- System.out.println("业务层的实现类 调用接口层的方法" +
- "");
- }
5.测试一下
- @Test
- public void test(){
-
- UserServiceImpl userService = new UserServiceImpl();
- userService.play();
-
- }
原来的方式是这样写的,如果再增加多个实现类 这样每次都有去new一个实现类,每次变动
都需要修改大量代码。
6.核心在业务层(sping的思想,控制权在调用者手里)
- //业务层需要去调用 接口层
-
- //利用set方法 进行动态实现
-
-
- public UserDao userDao;
-
- //利用set动态注入
-
- public void setUserDao(UserDao userDao){
- this.userDao=userDao;
- }
-
-
-
-
- @Override
- public void play(){
- userDao.play();
- System.out.println("业务层的实现类 调用接口层的方法" +
- "");
- }
7下面使用spring容器 管理对象.
- "1.0" encoding="UTF-8"?>
"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">
-
-
-
-
-
-
-
-
-
-
"mysqlImpl" class="com.kuang.dao.MysqlImpl"> -
8.使用spring管理 再次测试,现在不用创建对象,可以从容器中共拿这个对象
beans.xml
测试类
- public class MyTest {
-
-
- public static void main(String[] args) {
-
-
- ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
- Hello hello = (Hello)context.getBean("hello");
- System.out.println(hello.toString());
-
-
-
-
- }
-
-
- }
获取hello对象
继续学习
beans.xml 有三种编写方式
1. 根据index参数的下标设置
--> -->狂神说java"/>-->
2.根据参数名字设置
(通过直接参数名来设置) ioc创建对象的三种方式 -->
3.根据参数类型设置