三层架构及注解

本文讨论了三层架构的优点和缺点,重点介绍了如何通过Spring框架中的分包开发、接口设计、依赖注入和控制反转等技术来降低代码耦合度,提高代码复用性和维护性。
摘要由CSDN通过智能技术生成

案例:
    缺点:可重用性差,不便于维护,升级麻烦

三层架构拆分代码:
    controller 层:和浏览器交互(请求,响应)
    service: 业务逻辑处理
    dao:数据访问(增删改查)
    优点:复用性好,便于维护升级

分包开发:
    让代码更加的便于维护
    
耦合:
    描述的是代码与代码之间,程序与程序之间的关联关系
    关联度越高,耦合度高
    关联度低,交耦合度低
编程原则:
    高内聚(软件中各个功能模块内部的功能联系),低耦合
注意:
    耦合只能降低,不能完全消除


接口的好处:
    1.可以协助三层架构程序降低耦合
    2.制定规则:约定方法名称及返回值等

耦合的降低
    1.使用接口
    2.自己写工具类 BeanUtils(了解即可,代码比较繁琐)
       service 不依赖dao层具体实现类
    (Bean:豆
        JavaBean:java中的可重用组件)
    2.使用spring提供的工具实现
    @Component spring底层会自动识别该注解(一般用在工具类等其他类的创建)
      1.创建对象
      2.放入容器(内部的集合)
       @Repository 写在Dao 数据处理层
       @Controller 写在controller/web层(RestController注解包含该注解)
       @Service 写在service层
        

    @Autowired spring底层会自动识别该注解
      1.从容器中获取对象并给属性赋值
    默认按照类型注入,如果找到一个直接使用
      1.没找到就报错
     2.如果按照类型找到多个,会继续按照名称找一次
          @Primary 声明是哪个类主要的(出现冲突)
          @Qualifier() 不能单独使用,配合@Autowired 指定名称
          @Resource(name = "") 直接使用该注解 按照名称注入对象(jdk提供的)
    
    @Autowired(spring提供的)可以写在set方法上,也可以写在构造函数上,也可以直接写在属性上
    

    控制反转(IOC Inversion Of Control):创建对象的权利发生了反转(由程序员自己new,变成了spring帮我们创建),这个思想叫做控制反转
    创建对象,将对象放进容器

    依赖注入(DI Dependency inject):对象与对象之间的依赖关系靠spring自动注入维持
    从容器取对象

    共同作用:降低耦合


@RequestParam : 请求参数是 key=value 时使用 @DateTimeFormat : 请求参数是 日期时使用 @RequestBody 请求参数是 json 格式时使用 @PathVariable 请求参数通过路径传递参数时使用 @ResponseBody 响应数据自动转换成json 格式 @Component 标注在类上,创建对象,一般写在工具类上 @Controller 标注在类上,创建对象,一般写在 Controller 层 @Service 标注在类上,创建对象,一般写在 service 层 @Repository 标注在类上,创建对象,一般写在 dao 层 @Autowired 用于注入对象 @Qualifier 用于注入对象,配合@Autowired 使用 @Resource 用于注入对象 @Primary 用于注入对象时,如果有多个对象,指定生效的对象
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值