Spring框架学习之路

一、spring概述:

1、Spring是一个开源的J2EE应用程序框架,是针对bean生命周期管理的轻量级容器;

2、bean是Spring容器管理的对象;

2.1、bean的生命周期:创建对象--对象初始化--对象执行业务--对象销毁;

3、IOC调用原理:

IOC全称inversion of control,控制反转。对象创建的权利由Spring框架完成,由容器管理对象的生命周期,需要的时候进行依赖注入即可。

4、Spring 开发的两种方式

方式一:通过反射技术创建对象

语法
类名  变量名 = class.forName("类的配置文件,路径").newInstance();
    /**注解集
     * @ComponentScan 根据指定的包路径扫描注解
     * @Configuration配置 标识配置类
     * @bean 标识该方法的返回值交给Spring容器管理
     * @Scope("prototype") 标识 多列模式
     * @Lazy懒加载
     * @PostConstruct 标识初始化的方法
     * @PreDestroy  标识销毁的方法
     */

/* day01--环境搭建-Spring入门
 * 1.后端环境搭建
 *  1.1 IDEA环境搭建
 *  参考PPT
 *
 *  1.2 Maven 配置说明
 *  1.2-1 Maven概述
 *  Maven项目对象模型,可以通过描述信息管理项目的构建、报告、文档的
 *  项目管理工具软件。
 *  1.2-2 Maven工具原理
 *  组成部分:1.中央仓库、2.镜像仓库、3.本地仓库
 *  仓库存储的是jar包,项目中的jar包存储在本地仓库
 *  1.2-3 Maven配置
 *  -1.设定本地仓库
 *  <localRepository>本地仓库的全路径</localRepository>
 *  -2.配置私服镜像地址(镜像仓库)
 *  <mirror>
 *      <id>aliyun</id>
 *      <name>aliyun for maven</name>
 *      <mirrorof>*</mirrorof>
 *      <url>https://maven.aliyun.com/repository/public</url>
 *  </mirror>
 *  1.2-4创建项目配置
 *   URL: https://start.aliyun.com
 *  1.2-5 选择Springboot版本
 *  说明: 其中选择web包 表示添加spring/springmvc等jar包文件
 *
 *  1.3项目调试
 *  -1.运行程序,检查项目是否正常
 *  Tomcat started on port(s): 8080 (http) with context path ''
 *  出现上述提示则启动正常
 *  -2主启动方法不能执行
 *  主启动方法不能正常运行,原因IDEA不能识别该java工程,当做普通的文本文件。
 *  --解决方案: pom.xml 右键 add maven project
 *  -3.pom.xml文件jar包报错
 *  前提条件: 必须正确配置maven环境/配置私服镜像
 *  关于依赖项的说明:
 *   --具体的某个依赖
 *   1.依赖的构成要素3项 称之为 "坐标"
 *   1.1 组ID <groupId></groupId>
 *   1.2 项目名<artifactId></artifactId>
 *   1.3 版本号<version>2.3.7</version>
 *   2.坐标和本地仓库什么关系--根据坐标去本地仓库中,查找jar包文件
 *   3.如果依赖项报错了,则第一时间检查本地仓库中的jar包是否正确!!
 *   !解决方案: 根据坐标的位置,查找本地仓库的jar包是否正确,如果下载有误则删除之后,重新刷新
 *###扩展
 * 1.maven中的jar包有依赖传递性
 * ?如何实现的:通过坐标查找jar包文件,
 * 之后再根据pom进行依赖循环,直至所有的依赖项全部加载
 * 2.SHA1算法--安全散列算法1:是一种密码散列函数
 * SHA-1可以生成一个被称为消息摘要的160位散列值
 * Hash相关知识
 * Hash碰撞:不同的数据,经过相同的hash算法,得到相同的结果称为hash碰撞
 * hash碰撞问题,在数学界是没有办法规避
 *  1.4关于pom文件
 *  -1、<build></build>标签注意事项
 *   *build中的插件缺一不可
 *   *mainClass中的路径必须与主启动类一致
 *   *只有dependencies中的jar包依赖可以复制粘贴
 *   -clean指令删除target目录  target是.class文件的集合
 *   -install指令将开发的项目打包部署形成jar包文件
 *   -1.如果开发的是工具API/框架打成jar包后供其他人使用
 *   存储在target或者本地仓库中
 *   -compile指令将项目中的xxx.java文件编译成xxx.class文件
 
***********************************************************
 * day02--spring-IOC  解耦
 *
 * 1.spring框架学习
 *
 * ***1.1Spring简介
 * -spring框架是开源的、针对bean生命周期管理的轻量级容器
 * -1.bean是spring容器管理的容器
 * -2.bean的生命周期:对象的创建--对象的初始化--对象执行业务逻辑--对象销毁
 * -3.轻量级容器:Spring在内存中申请了一块内存空间,用来存储对象
 *
 * ***1.2-面向接口编程
 *接口的作用:抽取实现类的共性方法、接口定义规范准则
 * 优势:解决了属性和方法名的耦合
 * 弊端:根源问题没有解决,当前的类和对象仍然紧紧耦合在一起
 *
 * ***1.3  Spring-IOC
 * IOC设计思想:Inversion of Control 即控制反转
 * 对象的创建由Spring框架完成,由容器管理对象的生命周期,需要的时候进行依赖DI注入即可
 * ***1.4  Spring案例
 * -1.准备Dog类,定义一个方法
 * -2.准备Spring的配置文件,在resources文件夹下创建spring.xml(不常用,注解开发的方式是主流)
 * -3.从容器中获取对象的两种方式,
 * -通过字符串id获取需要强制类型转换
 * -通过类型获取 类名.class--比较简洁
 *public class SpringGetDog {
 *     //从spring容器中获取Dog对象
 *     public static void main(String[] args) {
 *         //1.指定Spring配置文件路径
 *         String resource = "spring.xml";
 *         //2.启动spring容器,固定写法
 *         ApplicationContext context =
 *                 new ClassPathXmlApplicationContext(resource);
 *         //3.从容器中获取对象
 *         Dog dog = (Dog) context.getBean("dog");
 *         Dog dog1 = context.getBean(Dog.class);
 *         System.out.println(dog);
 *         System.out.println(dog1);
 *         dog.hello();
 *     }
 * }
 *总结:创建对象的步骤
 * 1.定义spring的配置文件的地址.
 * 2.Spring容器启动时加载指定的配置文件.
 * 3.当Spring扫描到bean标签时.加载属性id和class
 * 4.通过反射机制 根据class的路径反射.实例化对象.
 * 反射示例 Dog dog = (Dog) Class.forName ("com.jt.demo2.Dog").newInstance();
 * 5.Spring在内部维护了一个大型的Map<k,v>集合(容器)
 * bean中的Id充当Map中的key. 实例化的对象充当Map中的value.
 * 形式: Map<Id,实例化对象> 到此为止 spring容器启动成功
 * 6.从spring容器中通过Id或者class类型 获取对象.
 * 7.根据对象调用业务方法.
 *
 ****1.5 Spring-IOC 注解开发
 *说明:传统Spring框架采用xml配置文件的方式进行维护.
 * 但是随着springboot框架的崛起,注解开发渐渐的成为主流.所以将来以注解开发为准
 *注解开发的组成部分:
 * 1.实体类  要交给spring容器管理的类(执行之后变为对象)
 * 2.配置类  相当于早期的xml配置文件
 * @ComponentScan 根据指定的包路径扫描注解
 * @Configuration 标识配置类
 * 3.测试代码 利用注解的方式启动spring容器
 *
 ****1.6 Spring中的单例-多例模式
 *概念说明--
 *单例模式: 内存中的对象就一份.Spring中的对象默认是单例的.
 *多例模式: 内存中的对象有多份. @Scope("prototype")
 *
 * ***1.7 懒加载@Lazy
 *注解: @Lazy
 *@Lazy 只能控制单例模式, 多例模式都是懒加载.
 *
 * ***1.8 Spring生命周期
 *创建--初始化--业务执行--销毁
 *销毁时需要手动添加 close();方法
 *
 *webPro04

 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值