基于xml的spring的IOC和DI技术

24 篇文章 0 订阅
15 篇文章 0 订阅

1.知识点总结:

spring框架: 
  简介: 
  优点 :    1)解耦
            2)可以整合其他 有优秀的框架, mybatis....
            3)可以利用 aop 面向 切面编程 完成整体 项目治理
            4)整合 持久层的  事务;

spring的入门:
 1)进入官网 下载jar包
 2)使用 下载后的jar包

spring入门 :
导入:   4+1 :core ,beans ,context ,expression ,comm-logging(依赖包)
其下载地址:https://repo.spring.io/release/org/springframework/spring/
spring的核心技术: 
  Ioc / DI
 Invers of control 控制反转

 dependency Inject 依赖注入

4)导入配置文件
 spring.xml或applicationContext.xml
==================
 spring框架 依赖注入的方式有几种: 
    1)构造器注入	 使用时 必须 留有一个 无参数的构造器
    2)setter方法注入  最常用
    3)p:命名空间注入:<p: name>
    4)接口注入  :侵入性强 没人用

2.案例代码:
1)工程架构图:
在这里插入图片描述
2)代码:

1.com.oracle.dao包:
package com.oracle.dao;

import com.oracle.vo.User;

public interface UserDao {

    public void addUser(User user);
}
2.com.oracle.daoImpl包:
package com.oracle.daoImpl;

import com.oracle.dao.UserDao;
import com.oracle.vo.User;

public class UserDaoImpl implements UserDao {


    @Override
    public void addUser(User user) {
        System.out.println("我是Spring的DI技术...");
    }
}
3.com.oracle.service包:
package com.oracle.service;

import com.oracle.vo.User;

public interface UserService {
    public void addUser(User user);
}
4.com.oracle.serviceImpl包:
package com.oracle.serviceImpl;

import com.oracle.dao.UserDao;
import com.oracle.service.UserService;
import com.oracle.vo.User;

public class UserServiceImpl implements UserService {
    //依赖
    UserDao userDao;
    //注入
    public UserDao getUserDao() {
        return userDao;
    }

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public void addUser(User user) {
        //System.out.println("我是spring的IOC技术");
        userDao.addUser(new User());
    }
}
5.com.oracle.test包:
package com.oracle.test;


import com.oracle.service.UserService;
import com.oracle.vo.User;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class UserTest {
    @Test
    public void UserIOC(){
        ClassPathXmlApplicationContext c = new ClassPathXmlApplicationContext("config/applicationContext.xml");
        UserService userService = (UserService)c.getBean("userServiceId");
        userService.addUser(new User());


    }
    @Test
    public void UserDI(){
        ClassPathXmlApplicationContext c = new ClassPathXmlApplicationContext("config/applicationContext.xml");
        UserService userService = (UserService) c.getBean("userServiceId");
        userService.addUser(new User());
    }
}
6.com.oracle.vo包:
package com.oracle.vo;

public class User {

    private String name;
}
7.config包:
<?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
        https://www.springframework.org/schema/beans/spring-beans.xsd">
     <!-- 将指定的类放在这个配置文件中
        Spring的IOC:将创建对象的权力交由Spring容器管理
        这个过程就是IOC 控制反转
     -->
     <bean id="userServiceId" class="com.oracle.serviceImpl.UserServiceImpl">
         <!-- 依赖注入...-->
         <property name="userDao" ref="userDaoId"></property>
     </bean>
     <bean id="userDaoId" class="com.oracle.daoImpl.UserDaoImpl"></bean>

</beans>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值