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

Spring5

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

Spring5

优点:
  • Spring是一个开源的免费的框架(容器)!
  • Spring是一个轻量级的,非入侵式的框架!
  • 控制反转(IOC),面向切面编程(AOP)!
  • 支持事务的处理,对框架整合的支持!

总结一句话:Spring就是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架!

SpringBoot

  • 一个快速开发的脚手架
  • 基于SpringBoot可以快速的开发带个微服务
  • 约定大于配置

SpringCloud

  • SpringCloud是基于SpringBoot实现的。

因为现在大多数公司都在使用SpringBoot进行快速开发,学习SpringBoot的前提,需要完全掌握Spring及SpringMVC! 承上启下的作用!

弊端:发展太久之后,违背了原来的理念!配置十分繁琐!人称:“配置地狱!” 2、IOC理论推导 将对象的创建交给spring管理,程序员不在关注对象的创建

        在我们之前的业务中,用户的需求可能会影响我们原来的代码,我们需要根据用户的需求去修改原代码!如果程序代码量十分大,修改一次的成本代价十分昂贵!

1.UserDao接口

public interface userDao{
    private void getUser();
}

2.Dao的实现类

public class UserDaoImpl implements UserDao{
    @Oveeribe
    public void getUser(){
        System.out.println("获取用户数据");
    }
    
}
public class UserMysqlImpl implements UserDao{
    @Oveeribe
    public void getUser(){
        System.out.println("获取mysql数据");
    }
    
}

3.userService接口

public interface userService{
    private void getUser();
}

4.Service的实现类

public class UserServiceImpl implements UserService{
    
    private UserDao userDao = new UserDaoImpl();

    @Oveeribe
    public void getUser(){
        userDao.getUser();
    }
    
}

5.测试

dao层实现类每改变一次,service业务层就需要改动一次。

UserService userService = new UserServiceImpl();

userService.getUser();

修改Service层

private UserDao userDao;


//利用set进行动态实现值得注入!
public void setUserDao(UserDao userDao){
    this.userDao = userDao;
}

测试:

@Test
public void test(){
    UserService userService = new UserviceImpl();
    ((UserServiceImpl) userService).setUserDao(new UserMysqlImpl);
    userService.getUser();

}

我们使用一个Set接口实现,已经发生了革命性的变化!

  • 之前,程序是主动创建对象!控制权在程序员手上!
  • 使用了set注入之后,程序不在具有主动性,而是变成了被动的接收对象!

这种思想,从本质上解决了问题,我们程序员不用再去管理对象的创建了。系统的耦合性大大降低~,可以更加专注的在业务的实现上!这是IOC的原型!

 IOC的本质

 注解实现Bean自动装配

@Autowired注解

 @Resource注解

 使用注解开发

 

 

 使用Java的方式配置Spring

 配置文件

 测试类

 这种纯Java的配置方式,在springBoot项目中随处可见!

代理模式

 代理模式的分类:

  • 静态代理
  • 动态代理

 静态代理

角色分析:

  • 抽象角色:一般会使用接口或者抽象类来解决
  • 真是角色:被代理的角色
  • 代理角色:代理真是角色,代理真是角色后,我们一般会做一些附属操作
  • 客户:访问代理人
动态代理 
  • 动态代理和静态代理角色一样
  • 动态代理的代理类是动态生成的,不是我们直接写好的!
  • 动态代理分为两大类:基于接口的动态代理,基于类的动态代理
  • 基于接口---JDK动态代理
  • 基于类:cglib
  • Java字节码实现:Javasist

需要了解两个类:Proxy(代理),invocationHandler(调用处理程序)

 AOP  什么是AOP?

 

 方式三:注解实现

 

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

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

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