文章目录
震惊!原来Spring框架入门仅需这么几步
老营销号了🤪
Spring一学就忘是怎么回事呢?Spring相信大家都很熟悉,但是Spring一学就忘是怎么回事呢,下面就让小编带大家一起了解吧。
Spring一学就忘,其实就是Spring超级恶心🤧,大家可能会很惊讶Spring怎么会一学就忘呢?但事实就是这样,小编也感到非常惊讶。
这就是关于Spring一学就忘的事情了,大家有什么想法呢,欢迎在评论区告诉小编一起讨论哦!
教学开始
1.Spring的概述
1.1介绍
Spring–SE/EE开发的一站式框架,百度百科,学习SSH和SSM必走之路。
一站式框架:有EE开发的每一层解决方案。
1.2下载
解压后的文件:
- docs :Spring的开发规范和API
- libs :Spring的开发的jar和源码
- schema :Spring的配置文件的约束
1.3引入Spring核心jar包
1.4原始Dao存在的问题
原始Dao虽然可以通过接口实现多态,但是需要修改时还是需要修改源码
而好的程序需满足OCP原则:在尽量不修改程序源码的基础上对程序进行扩展
1.5IOC和DI
IOC:控制反转,将对象的创建权反转给了Spring。
DI:依赖注入,前提必须有IOC的环境,Spring管理这个类的时候将类的依赖的属性注入(设置)进来。
IOC实现需要DI,DI前提必须有IOC
2.Spring的配置
2.1头配置
在src下新建文件applicationContext.xml(名字任意,默认是这个)
这里把下文注解context约束,aop约束,事务tx约束都导入了
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd ">
这里可以通过解压目录下spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html查看需要的配置,也可以通过Design界面下先在Preference下输入cato配置xsd文件然后右键标签选择add添加约束
2.2标签的配置
id和name区别:id需要唯一却不能有特殊字符,name相反
Bean的作用范围的配置scope:
singleton :默认的,Spring会采用单例模式创建这个对象。
prototype :多例模式。(Struts2和Spring整合一定会用到)
request,session,globalsession:应用在web项目中,分别存到各自的域,其中globalsession必须在porlet环境下使用。
porlet案例:登陆百度,然后进入百度的子页面如贴吧地图等不需要登陆了
2.3Spring的工厂类
BeanFactory :老版本的工厂类
ApplicationContext :新版本的工厂类,有两个实现类:
- ClassPathXmlApplicationContext :加载类路径下的配置文件(相对于src)
- FileSystemXmlApplicationContext :加载文件系统下的配置文件(绝对路径)
2.4Spring的实例化方式和属性注入
实例化方式:无参构造,静态/实例工厂实例化
属性注入:
set方法注入----name属性名,value属性值,ref关联其他类
P名称空间注入----p:name p:属性名
SpEL属性注入----#{‘xxx’}字符串 #{car}其他类 #{car.name}其他类的属性
<!-- 创建方式1:空参构造创建 -->
<bean name="user" class="com.heima.domain.User"> <!-- scope="singleton" init-method="init" destroy-method="destory" -->
<!-- set方式注入 -->
<!-- 值类型注入 -->
<property name="username" value="tom"></property>
<property name="age" value="18"></property>
<!-- 引用类型注入:为car属性注入下方配置的car对象 -->
<property name="car" ref="car"></property>
</bean>
<!-- 将car对象配置到容器中 -->
<bean name="car" class="com.heima.domain.Car">
<property name="carname" value="BenCi"></property>
<property name="color" value="white"></property>
</bean>
<!-- 构造函数注入
name:参数名,index:参数索引,type:参数类型
-->
<bean name="user4" class="com.heima.domain.User">
<constructor-arg name="username" index="0" type="java.lang.Integer" value="555"></constructor-arg>
<constructor-arg name="car" ref="car" index="1"></constructor-arg>
</bean>
<!-- 复杂类型注入 -->
<bean name="cb" class="com.heima.domain.CollectionBean">
<!-- array注入 -->
<property name="arr">
<array>
<value>tom</value>
<value>jack</value>
<ref bean="car"/>
</array>
</property>
<!-- list注入和array差不多 -->
<!-- map类型注入 -->
<property name="map">
<map>
<entry key="url" value="jdbc:mysql:///crm"></entry>
<entry key="user" value-ref="user4"></entry>
</map>
</property>
<!-- properties类型注入 -->
<property name="properties">
<props>
<prop key="driverClass">com.jdbc.mysql.Driver</pro