Spring相关概念 IoC思想

Spring核心概念

spring可以降低代码书写的耦合度

(因为实现业务层逻辑时,我们需手动创建service的对象,如果service发生改变,需重新创建新的对象,下面的代码也需重新调试,很麻烦)

解决方案:

使用对象时,在程序中不要主动使用new产生对象,转换为由外部提供对象

  • IoC (Inversion of Control)控制反转
    对象的创建控制权由程序转移到外部,这种思想称为控制反转

对IoC思想的实现

  • Spring提供了一个容器,IoC容器,用来充当IoC思想中的外部,即这个对象由自己创建,变为Spring IoC容器提供
  • IoC容器负责对象的创建,初始化等一系列工作,被创建或管理的对象在容器中称为Bean
  • DI思想 依赖注入:
    • 在容器中建立bean与bean之间的依赖关系的整个过程,称依赖注入

IoC入门

  1. 导入相应jar包
  2. 定义Spring管理的类(接口)
  3. 创建配置文件,并配置bean
  4. 初始化IoC容器(Spring核心容器/Spring容器),通过容器获取bean

DI入门

思路分析:

  1. 基于IoC管理bean
  2. Service中使用new形式创建的Dao对象不保留
  3. Service中需要的Dao对象如何进入到Service中(提供方法set)
  4. Service中与Dao的关系如何描述(配置)

异常处理

由于异常处理的代码都具有相同的部分,所以使用AOP来统一处理项目中的异常

可在表现层定义异常处理器

//声明这个类是用来做异常处理的(使用AOP思想)
//这个类一定要被SpringMvc的配置类扫到
@RestControllerAdvice
public class ProjectExceptionAdvice {
    @ExceptionHandler(Exception.class)  //定义处理哪种类型的异常
    //定义处理异常的方法
    public Result doException(Exception e){
        System.out.println("处理异常。。。");
        return new Result(666,null,"有异常");
    }

}

项目异常处理方案

  • 业务异常
  • 系统异常
  • 其他异常
  1. 自定义业务异常和系统异常
  2. 在可能出现异常的地方将异常进行包装,转换成自定义异常
  3. 在异常处理器中,定义处理每种异常的方法

SpringMVC过滤访问的静态资源

  1. 创建一个配置类(SpringMvcSupport),且必须让SpringMvcConfig将其加载进去,即扫到这个类

  2. 让其继承于WebMvcConfigurationSupport类,且重写其中的addResourceHandlers方法

    @Configuration
    public class SpringMvcSupport extends WebMvcConfigurationSupport {
        @Override
        protected void addResourceHandlers(ResourceHandlerRegistry registry){
            //意为当访问/pages/...时,走/pages下的资源
            registry.addResourceHandler("/pages/**").addResourceLocations("/pages/");
        }
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值