概述
一、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
*
*
*
*
*
*
*
*
*
*
*
*
*/
最后
以上就是传统蜻蜓为你收集整理的Spring框架学习之路的全部内容,希望文章能够帮你解决Spring框架学习之路所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复