Spring IOC

目录

1、主要内容

Spring

        1、Spring框架

         2、Spring的作用

        3、Spring模块划分

        4、Spring源码架构

Spring框架环境搭建

      新建Maven项目


1、主要内容

IOC是控制反转,依赖注入。

Spring

         1、Spring框架

                Spring是众多开源Java项目中的一员,基于分层的JavaEE应用的一站式轻量级开源框架,主要核心是IOC(控制反转/依赖注入)与AOP(面向切面)两大技术,实现项目在开发过程中的轻松解耦,提高项目的开发效率。

                在项目中引入Spring立即可以带来下面的好处降低组件之间的耦合度,实现软件各层之间的解耦。可以使用容器提供的众多服务,如:事务管理服务、消息服务等等。当我们使用容器管理事务时,开发人员就不再需要手工控制事务,也不需要处理复杂的事务传播。容器提供单例模式支持,开发人员不在需要自己编写实现代码。容器提供了AOP技术,利用它很容易实现,如:权限拦截、运行期监控等功能。

               Spring框架是一个开源的JavaEE的应用程序,其主要核心是ICO(控制反转/依赖注入)和AOP(面向且切面编程)两大技术。

                Spring IOC(控制反转/依赖注入)

                Spring AOP(面向且切面编程)

                Spring JDBC + 事务

                Spring Task 定时调度

                Spring Mail 邮件发送

         2、Spring的作用

                Dao层

                        JDBC操作

                        对应的框架:Mybatis

                service层

                        Spring框架不是针对service层的业务逻辑,service没有适合框架。

                Controller层

                        servlet(接收请求、响应数据、地址配置、页面转发)

                        对应框架:Spring MVC

                Spring基于分布式的应用程序

                        基于轻量级的框架

                                配置管理

                                Bean对象的实例化—IOC

                        集成第三方的框架

                                Mybatis、Hibernate框架(持久层框架)

                                Spring MVC

                                Spring Security权限

                                Quartz时钟框架(定时任务处理)

                                Elasticsearch搜索引擎

                        自带服务

                                Mail邮件发送

                                Task定时任务处理-定时调度(定时短信、定时任务)

                                消息处理(异步处理)

        3、Spring模块划分

                Spring IOC模块:Bean对象的实例化,Bean的创建;

                Spring AOP模块:动态代理,面向切面编程;

                Spring JDBC + 事务模块;

                Spring Web模块

        4、Spring源码架构

                核心容器:Spring-beans和Spring-core模块是Spring框架的核心模块,包含控制反转(Inversion of Control,IOC)和依赖注入(Dependency Injcetion,DI),核心容器提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,工厂模式的实现。BeanFactroy使用控制反转(IOC)思想将应用程序的配置和依赖性规范与实际的应用程序代码分开。

                Spring上下文Spring Context:Spring上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,例如:JNDI、EJB、电子邮件、国际化、校验和调度功能。

                Spring-Expression模块是统一表达语言(unified EL)的扩展模块,可以查询、管理运行中的对象,同时也方便的可以调用对象方法、操作数组、集合等。它的语法类似于传统EL,但提供了额外的功能,最出色的要数函数调用和简答字符串的模板函数。

Spring框架环境搭建

        环境要求

                JDK版本:

                        JDK1.7及以上版本

                Spring版本:

                        Spring5.x版本

      新建Maven项目

         

         

         调整项目环境

                

         添加Spring框架的依赖坐标:  

<!--  添加Spring框架的核心依赖  -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.7.RELEASE</version>
    </dependency>
  </dependencies>

        pro.xml:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>Spring01</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>Spring01</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

  <!--  添加Spring框架的核心依赖  -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.7.RELEASE</version>
    </dependency>
  </dependencies>

  <build>
  </build>
</project>

        添加配置Spring配置文件

                在项目的src下创建文件夹resource(Alt + Insert)

                将resource标记为资源目录

                

         在src\main\resourece目录下新建spring.xml文件,并拷贝官网文档提供的模板内容到xml中。

        配置bean到xml中,把对应bean纳入到Spring容器来管理。

        Spring.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
        https://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- 
         xmlns:即xml namespace   xml使用的命名空间
         xmlns:xsi即xml schema instance xml 遵守的具体规范
         xsi:schemaLocation 本文档xml遵守的规范   官方指定
      -->
    <!--  定义Bean对象
            id  bean对象的唯一标识符
            class   bean对象(需要被是实例化的bean对象)的全路径  包名+类名
      -->
    <bean id="userService" class="org.example.service.UserService"></bean>
</beans>

        UserService.java:           

package org.example.service;

public class UserService {
    public void test(){
        System.out.println("UserService...");
    }
}

        Starter.java:

import org.example.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Starter {
    public static void main(String[] args) {
        //加载spring对象的上下文环境
        ApplicationContext ac = new ClassPathXmlApplicationContext("spring.xml");
        //得到需要被实例化的对象 getBean("id"):代表spring.xml配置文件中bean标签的id属性值,其也会返回一个实例化对象(object类型)
        UserService userService = (UserService) ac.getBean("userService");
        //调用方法
        userService.test();
    }
}

        结果就是“UserService...”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值