spring的ioc入门

spring的概念

Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。

Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

DI:依赖注入,一个BookService类的功能需要依赖另一个BookDaoo类配合,同时需要赋上一个具体的对象,则成这种关系是依赖注入;

IOC:控制反转,以前依赖的对象自己直接new,现在不需要new,框架会自动注入对象,创建对象的权利转移给了框架;

spring框架负责所有对象的创建、管理和依赖注入;所有的镀锡存储的容器叫做ICO容器;

Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。
目的:解决企业应用开发的复杂性
功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
范围:任何Java应用

1.创建项目,导入spring的jar包

spring的ioc入门_第1张图片

2.按照如下目录结构创建接口及其实现类,做好准备工作

spring的ioc入门_第2张图片

servlet层

package com.wang.servlet;

import com.wang.service.BookService;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class BookServlet {
    BookService bookService;

    @Test
    public void test(){
        System.out.println("BookServiceImpl...success");

        //获取ico容器
        ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("spring.xml");
        bookService = (BookService) context.getBean("bookService");
        bookService.save();
    }
}

service层


//接口类
public interface BookService {
    //接口
    void save();
}

//接口的实现类
package com.wang.service.impl;

import com.wang.dao.BookDao;
import com.wang.service.BookService;

public class BookServiceimpl implements BookService {
    BookDao bookDao;

    public void setBookDao(BookDao bookDao) {
        this.bookDao = bookDao;
    }

    @Override
    public void save() {
        System.out.println("BookServiceimpl...success");
        bookDao.insert();
    }
}

dao层

//接口类

public interface BookDao {
    //接口
    public void insert();
}

//实现类
package com.wang.dao.impl;

import com.wang.dao.BookDao;

public class BookDaoImpl implements BookDao {
    @Override
    public void insert() {
        System.out.println("BookDaoImpl.....success");
    }
}
注意: 此时项目没办法执行,因为没有做依赖对象的注入。

3.使用spring完成IOC的配置和DI依赖注入

创建spring的核心配置文件



    
    
    
        
    
bean标签表示把对应class的对象创建到IOC容器中,如果当前对象有依赖的其他对象,那么可以 通过property对依赖的对象使用ref引用容器中已经注册过的对象 。

注意:BookServiceImpl需要给bookDao属性设置setter方法,框架才能自动注入

你可能感兴趣的:(spring)