栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring

一、Spring 概述 1.1、web项目开发中的耦合度问题

·在Servlet中需要调用service中的方法,则需要在Servlet类中通过new关键字创建Service的实

public interface ProductService{
        public List listProducts();
    }
public interface ProductService{
        public List listProducts();
    }
public class ProductServiceImpl2 implements ProductService{
        public List listProducts(){
            //查询好评商品
        }
    }
public class ProductListServlet extends HttpServlet{
    //在servlet中使用new关键字创建ProductServiceImpl1对象,增加了servlet和service的耦合度
    private ProductService productService = new ProductServiceImpl1();
    
    protected void doGet(HttpServletRequest request,HttpServletResponse response){
        doPost(request,response);
    }
    protected void doPost(HttpServletRequest request,HttpServletResponse response){
        productService.listProducts();
    }
}

·在service实现类中需要调用DAO中的方法,也需要在service实现类通过new关键字创建DAO实现类对象
·如果在实现new关键字创建对象:

 ·标题失去了面向接口编程的灵活性
 ·代码的侵入性增强(在一个类中new另外一个,增加了耦合度)、降低了代码的灵活性
1.2、 面向接口编程


解决方案:在Servlet中定义Service接口的对象,不适用new关键字创建实现类对象,在servlet的实例化的时候,通过反射动态的给Service接口的对象变量赋值。
如何实现:Spring可以做到!

1.3Spring介绍

Spring是一个轻量级的控制反转和面向切面的容器框架,用来解决企业项目开发的复杂度问题——解耦
·轻量级:体积小,对代码没有侵入性
·控制反转:IoC(Inverse of Control),把创建对象的工作由Spring完成,·Spring在创建对象的时候同时可以完成
对象属性赋值(DI)
·面向切面:AOP(Aspect Oriented Programming)面向切面编程,可以在不改变原有业务逻辑的情况下实现对业务的增强
·容器:实例的容器,管理创建的对象.

1.4spring架构

·官网 https://spring.io/

·Spring架构图

1.4.1 Core Container

Spring容器组件,用于完成实例的创建和管理
·core 核心
·beans 实例管理
·context 容器上下文

1.4.2 AOP、Aspects

Spring AOP组件,实现面向切面编程
·AOP
·Aspects

1.4.3 web

Spring web组件实际指的是SpringMVC框架、实现web项目的MVC控制
·web(Spring对web项目的支持)
·webmvc(SpringMVC)

1.4.4 Data Access

Spring数据访问组件,也是一个基于JDBC封装的持久层框架(即使没有mybatis,Spring也可以完成持久化的数据库操作)
·tx

1.4.5 Test

Spring的单元测试组件,提供了Spring环境下的单元测试支持
·test

二:Spring IoC

Spring Ioc 容器组件,可以完成对象的创建,对象属性赋值,对象管理

2.1.1 创建Maven工程

·Java
·Web

2.1.2 添加SpringIoc依赖

·core
·beans
·aop
·expression
·context



    org.springframework
    spring-context
    5.2.12.RELEASE


2.1.3 创建Spring配置文件

通过配置文件“告诉”Spring容器创建什么对象,给对象属性赋什么值
·在resource目录下创建名为 applicationContext.xml 的文件(文件名可以自定义的)









2.2 SpringIoC使用

使用SpringIoC组件创建并管理对象

2.2.1 创建一个实体类
public class Student {

    private String stuNum;
    private String stuName;
    private String stuGender;
    private int stuAge;
    private Date enterenceTime;//入学日期

}
2.2.2 在Spring配置文件中配置实体类

ClassPathXmlApplicationContext

//通过Spring容器创建Student对象
//1、初始化Spring容器,加载Spring配置文件
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//2、通过Spring容器,获取Student对象
Student student2 = (Student) context.getBean("stu");
2.3 IoC和DI

·IoC(Inverse of Control) 控制反转,依赖Spring对象工厂,完成对象的创建
·DI (Dependency Injection)依赖注入,在Spring完成对象创建的同时依赖Spring容器完成对象属性的赋值

2.3.1 IoC

当我们需要通过Spring对象工厂创建某个类的对象时候,需要将这个交给Spring管理——通过bean标签配置

  
2.3.2 DI

通过Spring容器给创建的对象属性赋值


    
        
        
        
        
        
    
2.4 DI依赖注入 2.4.1 依赖注入三种方式

Spring容器加载配置文件之后,通过反射创建类的对象,并给属性赋值;
Spring容器通过反射实现属性注入有三种种方式:
·set方法注入
·构造器注入
·接口注入(不常用)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/840628.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号