写点什么

怎么可能?面试会被 Spring 难住?Spring 框架从入门到精通

用户头像
极客good
关注
发布于: 刚刚

IoC 概念


框架怎么学:框架是一个软件,是其它人写好的软件。知道框架能干啥, 具体的使用步要就行。


1)知道框架能做什么,mybatis--访问数据库, 对表中的数据执行增删改查。


2)框架的语法,框架要完成一个功能,需要一定的步骤支持的。


3)框架的内部实现,框架内部怎么做,原理是什么。


4)通过学习,可以实现一个框架。


spring 的第一个核心功能 ioc


IOC (Inversion of Control) :控制反转,是一个理论,概念,思想。


描述的:把对象的创建,赋值,管理工作都交给代码之外的容器实现,也就是对象的创建是有其它外部资源完成。


控制:创建对象,对象的属性赋值,对象之间的关系管理。


反转:把原来的开发人员管理,创建对象的权限转移给代码之外的容器实现。由容器代替开发人员管理对象。创建对象,给属性赋值。


正转:由开发人员在代码中,使用 new 构造方法创建对象,开发人员主动管理对象。


public static void main(string args[]){


student student - new Student();//在代码中, 创建对象。--正转。


}


容器:是一个服务器软件,一 个框架(spring)


为什么要使用 ioc :目的就是减少对代码的改动,也能实现不同的功能。实现解耦合。


创建对象的方式


为什么要使用 ioc :目的就是减少对代码的改动,也能实现不同的功能。实现解耦合。


java 中创建对象有哪些方式:


1.构造方法,new student ( )


2.反射


3.序列化


4.克隆


5.ioc。容器创建对象


6.动态代理,利用反射机制在运行时创建代理类。


IoC 的实现技术


========


ioc 的体现:


servlet


1.创建类继承 HttpServelt


2.web.xml 注册 servlet ,使用<servlet-name> myservlet </ servlet-name>


<servelt-class>com.?


bjpwernode.controller.MyServlet1</servlet-class>


3.没有创建 Servlet 对象,没有 MyServlet myservlet = new MyServlet ()


4. Servlet 是 Tomcat 服务器它能你创建的。Tomcat 也称为容器。


Tomcat 作为容器:里面存放的有 Servlet 对象,Listener ,Fil ter 对象


IoC 的技术实现


DT 是 inc 的技术实现


DI ( Dependency Injection) : 依赖注入,只需要在程序中提供要使用的对象名称就可以,至


赋值,查找都由容器内部实现。


spring 是使用的 di 实现了 ioc 的功能,spring 底层创建对象,使用的是反射机制。


第一个例子创建对象


![一文带你学习 Spr


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


ing 框架从入门到精通,通向架构师道路的必经之学](https://static001.geekbang.org/infoq/bc/bcef63c68af407412eb1e36f2e586fee.png)


创建 spring 配置文件



创建容器对象 ApplicaitonContext【拿到 spring 创建的对象】




spring 创建对象的时机


=============



获取容器中对象信息的 api




创建非自定义对象




设值注入概念【注入就是赋值】


==============


ch02-di-xml:在 spring 的配置文件中,给 java 对象的属性赋值。


di:依赖注入,表示创建对象,给属性赋值。


di 的实现有两种:


1.在 spring 的配置文件中,使用标签和属性完成,叫做基于 XML 的 di 实现。


2.使用 spring 中的注解,完成属性赋值,叫做基于注解的 id 实现。


di 的语法分类:


1. set 注入(设置注入) : spring 调用类的 set 方法,在 set 方法可以实现属性的赋值。


80 左右都是使用的 set 注入。


2.构造注入,spring 调用类的有参数构造方法,创建对象。在构造方法中完成赋值。



简单类型的设值注入实现





单元测试 junit


就是因为在 main 文件中测试不方便,不能独立测试每一个方法,所以提出单元测试。



junit :单元测试,一个工具类库,做测试方法使用的。


单元:指定的是方法,一个类中有很多方法,一个方法称为单元。


使用单元测试


1.需要加入 junit 依赖。


<dependency>



<groupId>junit</groupId>



<arti factId> junit </arti factId><version>4.11</version>



<scope>test</ scope>



</ dependency>


2.创建测试作用的类:叫做测试类


src/ test/java 目录中创建类


3.创建测试方法


  1. public 玩法


2)没有返回值 void


3)方法名称自定义,建议名称是 test +你要测试万法名称


4)方法没有参数


5)方法的上面加入 @Test,这样的方法是可以单独执行的。不用使用 main 方法。


设值注入【set 注入】的注意事项


================




设值注入只是使用 set 方法



xml 文件规定,所有的属性必须放在引号中,int 类型的数据也一样。


设值注入也可以给别人写的类进行赋值,只要有对用的 set 方法就行。


引用类型的设值注入




构造注入


构造注入是指,在构造调用者实例的同时,完成被调用者的实例化。即使用构造器设置依赖关系。





还可以省略 index。


构造注入创建文件对象




复习第一天内容【思维导图】


=============




IoC 作业




自动注入 byName


简化对于引用类型的重复赋值,减少冗余。





自动注入 byType


2. byType(按类型注入) : java 类中引用类型的数据类型和 spring 容器中(配置文件) <bean>的 class 是同源关系的,这样的 bean 能够赋值给引用类型。


同源就是一类的意思:


1.java 类中引用类型的数据类型和 bean 的 class 的值是样的。


2.java 类中引用类型的数据类型和 bean 的 class 的值父子类关系的。


3.java 类中引用类型的数据类型和 bean 的 class 的值接口和实现类关系的


语法:


<bean id="xx" class="yyy" autowire= "byType">


简单类型属性赋值


</bean>


为什么使用多配置文件


==========


大型项目中,需要多个配置文件。


多个配置优势


1.每个文件的大小比一个文件要小很多,效率高。


2.避免多入竞争带来的冲突。


如果你的项目有多个模块(相关的功能在一起),一个模块一个配置文件。


学生考勤模块一个配置文件,张三


学生成绩一个配置文件,李四


多文件的分配方式:


1.按功能模块,一个模块一个配置文件


2.按类的功能,数据库相关的配置一个文件配置文件,做事务的功能一个配置文件,做 service 功能的一个配置文件等。


包含关系的配置文件







注解的使用步骤


=======


基于注解的 di:通过注解完成 java 对象创建,属性赋值。


使用注解的步骤:


1.加入 maven 的依赖 spring-context ,在你加入 spring- context 的同时,间接加入 spring- aop 的依赖,使用注解必须使用 spring-aop 依赖。


2.在类中加入 spring 的注解(多个不同功能的注解)

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
怎么可能?面试会被Spring难住?Spring框架从入门到精通