Spring V4.2入门详解

本文是一篇Spring框架4.2的入门教程,详细介绍了Spring的概述、配置、IOC注解、AOP开发和JDBC模板等内容。通过学习,读者可以了解Spring的基本概念、配置方法、依赖注入、面向切面编程以及如何进行事务管理和数据库操作。
摘要由CSDN通过智能技术生成

震惊!原来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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值