1-Spring的概念

spring的作用:使现有技术更容易使用,本事是一个大杂烩,整合了现有的技术框架。
SSH:Struct2+Spring+Hibernate!
SSM:SpringMVC+Spring+Mybatis!
4.3.9版下载地址:http://repo.spring.io/release/org/springframework/spring
导入spring-webmvc包

compile group: 'org.springframework', name: 'spring-webmvc', version: '5.2.2.RELEASE'

1.2-Spring的优点

Spring是一个开源的免费的框架(容器)!
Spring是一个轻量级的(可以直接添加依赖)、非入侵式的框架(不会影响原来的代码)!
控制反转(IOC)、面向切面编程(AOP)!
支持事务处理,对框架整合的支持!
总结一句话:Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架!

1.3-Spring组成

1.4-Spring拓展

Spring Boot

1.一个快速开发的脚手架。
2.基于Spring Boot可以快速开发单个微服务。
3.约定大于配置。

Spring Cloud

1.Spring Cloud是基于Spring Boot实现的。

2-IOC理论推导

UserDao接口

package com.kuang.dao;public interface UserDao {void getUser();
}

UserDaoMysqllmpl实现类

package com.kuang.dao;public class UserDaoMysqllmpl implements UserDao{@Overridepublic void getUser() {System.out.println("Mysql获取了用户数据");}
}

UserDaolmpl实现类

package com.kuang.dao;public class UserDaolmpl implements UserDao{@Overridepublic void getUser() {System.out.println("默认获取用户数据");}
}

UserService业务接口

package com.kuang.Service;public interface UserService {void getUser();
}

UserServicelmpl业务实现类

package com.kuang.Service;import com.kuang.dao.UserDao;
import com.kuang.dao.UserDaoMysqllmpl;
import com.kuang.dao.UserDaolmpl;public class UserServicelmpl implements UserService{private UserDao UserDaolmpl=new UserDaolmpl();//
//    //如果要掉UserDaoMysqllmpl的实现就要改动
//   private UserDao UserDaolmpl=new UserDaoMysqllmpl();
//    //也可以利用set方法可以动态实现值得注入
//  public  void setUserDao(UserDao userDao){//      this.UserDaolmpl = userDao;
//  }@Overridepublic void getUser() {UserDaolmpl.getUser();}
}

Test

import com.kuang.Service.UserService;
import com.kuang.Service.UserServicelmpl;
import com.kuang.dao.UserDaoMysqllmpl;public class test {public static void main(String[] arsg){//用户实际掉的是Services层,不接触Dao层UserService userService =new UserServicelmpl();UserService userService1 ;userService.getUser();//动态实现值得注入((UserServicelmpl) userService1).setUserDao(new UserDaoMysqllmpl());userService.getUser();}
}

Spring自学日志01相关推荐

  1. Spring自学日志07(整合Mybatis)

    具体步骤 1.导入相关jar包 .junit .mybatis .mysql数据库 .spring相关 .AOP支持 .mybatis-spring[new] build.gradle plugins ...

  2. Spring自学日志04(java的方式配置Spring)

    使用java的方式配置Spring 稳现在完全不使用xml配置,java来做 javaConflg是spring的一个子项目,在Spring4后,它成为了一个核心功能. import com.java ...

  3. Spring自学日志06(Aop)

    什么是AOP 面向切面编程,通过预编译的方式和运行期动态代理实现程序功能的同一维护的技术. 利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时 ...

  4. Spring自学日志03(作用域,自动装配)

    bean的作用域 Singleton(单例模式,是默认spring的) <bean id ="user2" class="com.injection.User&qu ...

  5. Spring自学日志02(对象的创建,依赖注入)

    IOC创建对象的方式 无论是否使用,只有在xml文件中被注册(bean),就会被创建. 1.用无参构造创建对象 <!--无参构造创对象 类型 变量名 = new 类型(); Hello hell ...

  6. Spring自学日志00(Spring配置文件头及xsd文件版本浅析)

    来自该博客的技术 一.Spring配置文件头 最初Spring配置文件的头部声明如下: <?xml version="1.0" encoding="UTF-8&qu ...

  7. SpringMVC自学日志01(回顾servlet)

    MVC:模型(dao,service) 视图(jsp) 控制器(servlet) dao service servlet:转发,重定向. 导入总环境pom.xml依赖 <dependencies ...

  8. Spring自学日志05(代理模式)

    为什么要学习代理模式?因为这就是SpringAOP的底层! 抽象角色:一般是接口或抽象类 真实角色:被代理的角色 代理角色:代理真实角色,代理后还会做一些附属操作 客户:访问代理角色的人 静态代理模式 ...

  9. ELK 处理 Spring Boot 日志,妙!

    以下文章来源方志朋的博客,回复"666"获面试宝典 在排查线上异常的过程中,查询日志总是必不可缺的一部分.现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常 ...

最新文章

  1. VConsole的使用
  2. jQuery:localStorage用法
  3. 201521123011 《Java程序设计》第8周学习总结
  4. 4 Convex optimization problems
  5. oschina mysql limit_Mysql中limit的用法
  6. java取整数位_java获取整数的各位数值
  7. Linux文件目录类指令
  8. 深度揭秘铁路 12306 的架构
  9. hibernate annotations @Entity hql XX not mapped
  10. php有空语句吗?,php是空还是空?
  11. linux中sz命令怎么使用,Linux rz和sz命令使用教程
  12. es文件搜索不到win7服务器,ES文件浏览器Win7局域网共享错误解决方案
  13. 五个美观好用的全能性IDE推荐(更新)
  14. oracle ogg数据格式转换,Oracle 19C OGG基础运维-02数据初始化
  15. Error response from daemon: removal of container XXX is already in progress
  16. 使用MQTTNet包实现客户端与服务端通讯
  17. AddListener(action)
  18. 企业高管跳槽区块链,跳的是“坑”还是“槽”?
  19. linux编程性能,Linux性能评估工具
  20. 在亚马逊能接到服装订单吗?亚马逊美国站突然没订单怎么办?

热门文章

  1. nginx+tomcat实现负载均衡集群
  2. python使用opencv实现人脸识别系统
  3. 用 State Pattern 来实现一个简单的 状态机
  4. UVA - 129 Krypton Factor (困难的串)(回溯法)
  5. less-postcss
  6. Tips--Docker常用命令
  7. 处理veh调试器检测_越狱检测抖音逻辑???
  8. NG Command(命令)
  9. PAT乙级 1013 数素数
  10. 加油卡 格式判断 java_JAVA实验_题目8