【Spring01】系统架构+bean基础配置

导读:本篇文章讲解 【Spring01】系统架构+bean基础配置,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一、Spring简单了解

1、Core Container

是spring的核心容器,是装对象的容器

2、AOP:面向切面编程,教你程序怎么做

Aspects:AOP思想实现

3、Data Access/Intergration

Data Access:数据访问

Data Intergration:数据集成

需要单独介绍Transactions,也就是事务,后面补充

4、Web:Web开发

5、Test:单元测试与集成测试

二、核心概念

        我们在编写代码时,经常会通过new对象来书写,这样会造成耦合度较高,如果我们在业务层需要实现另一个方式时,new对象也随之变化,后期维护也要跟着变动,这时我们就可以在程序中不主动使用new产生对象,转换为由外部提供对象。也就是我们接下来要学的IOC控制反转

        Spring提供了一个容器,称为IOC容器,用来充当IOC思想中的“外部”

【Spring01】系统架构+bean基础配置

        IOC容器负责对象的创建、初始化等一系列工作,被创建或被管理的对象在IOC容器中统称为Bean

        DI(Dependency Injection)依赖注入,在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入。

【Spring01】系统架构+bean基础配置

三、IOC入门案例

1.导入spring坐标

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>
    </dependencies>

2.定义spring管理的类(接口)

public interface BookService {
   public void save();
}

public class BookServiceImpl implements BookService {
    private IBookDao bookDao = new BookDaoImpl();
    public void save(){
        System.out.println("book service save...");
        bookDao.save();
    }
}

3.创建spring配置文件,配置对应类作为spring管理的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">
<!--1.导入spring的坐标spring-context,对应版本是5.2.10.RELEASE-->
<!--2.配置bean-->
<!--    bean标签表示配置bean-->
<!--    id属性表示给bean起名字-->
<!--    class属性表示给bean定义类型-->
    <bean id="bookDao" class="com.yy.dao.impl.BookDaoImpl"/>
    <bean id="bookService" class="com.yy.service.impl.BookServiceImpl"/>
</beans>

PS:bean定义时id属性在同一个上下文中不能重复

4.初始化IOC容器,通过容器获取bean

public class App2 {
    public static void main(String[] args) {
        //3.获取IOC容器(加载配置文件得到上下文对象,也就是容器对象)
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        //4.获取bean

        BookService bookService = (BookService) context.getBean("bookService");
        bookService.save();
    }
}

四、DI入门案例

1.删除使用new的形式创建对象的代码

【Spring01】系统架构+bean基础配置

2.提供依赖对象对应的setter方法

public class BookServiceImpl implements BookService {

    //5.删除业务层中使用new的方式创建的dao对象
    private IBookDao bookDao;

    public void save(){
        System.out.println("book service save...");
        bookDao.save();
    }

    //6.提供对应的set方法
    public void setBookDao(IBookDao bookDao) {
        this.bookDao = bookDao;
    }
}

3.配置service与dao之间的关系

<?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">
<!--1.导入spring的坐标spring-context,对应版本是5.2.10.RELEASE-->
<!--2.配置bean-->
<!--    bean标签表示配置bean-->
<!--    id属性表示给bean起名字-->
<!--    class属性表示给bean定义类型-->
    <bean id="bookDao" class="com.yy.dao.impl.BookDaoImpl"/>

    <bean id="bookService" class="com.yy.service.impl.BookServiceImpl">
<!--        7.配置service与dao的关系-->
<!--        property标签表示配置当前bean的属性-->
<!--        name属性表示配置哪一个具体的属性,对应的是BookServiceImpl中的-->
<!--        ref属性表示参照哪一个bean,对应的是.xml文件中的-->
        <property name="bookDao" ref="bookDao"></property>
<!--        value是传基本数据类型,ref传引用数据类型,并且所引用的对象要在容器中-->
    </bean>
</beans>

五、bean基础配置

1.bean别名配置

类别 描述
名称 name
类型 属性
所属 bean标签
功能 定义bean的别名,可定义多个,使用逗号(,)分号(;)空格( )分隔
范例
<bean id="bookDao" name="dao bookDao2" class="com.yy.dao.impl.BookDaoImpl"/>

PS:获取bean无论是通过id还是name获取,如果无法获取到,将抛出异常NoSuchBeanDefinitionException: No bean named ‘bookDao1’

2.bean的作用范围配置

spring创建的bean默认是一个单例实例。类似于new的对象都是一个对象,内存地址都一样。

用scope可以配置是否单例

类别 描述
名称 scope
类型 属性
所属 bean标签
功能

定义bean的作用范围,可选范围如下:

singleton:单例(默认)

prototype:非单例

范例
<bean id="bookDao" scope="prototype" class="com.yy.dao.impl.BookDaoImpl"/>

【Spring01】系统架构+bean基础配置

适合交给容器进行管理的bean:

表现层对象:servlet

业务层对象:service

数据层对象:dao

工具对象:util

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/111713.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!