spring(一)

Spring 框架

三层架构:表示层,业务逻辑层,数据访问层

mvc 模型-视图-控制器

Spring框架 ---管理框架, 三层架构中属于业务逻辑层框架

spring官网地址 Spring | Home

Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用。

Spring 框架是一个开源的 Java 平台

Spring Framework 的两大核心:IOC和AOP

Spring Framework特性

非侵入式,对应用程序的结构影响非常小,零污染,控制反转IOC,面向切面编程AOP,IOC容器,组件化、声明式、一站式

面向切面编程是对面向对象编程的补充

面向切面编程:AOP——Aspect Oriented Programming,在不修改源代码的基础上增强代码功能    横向抽取

面向对象:纵向封装

控制反转IOC——Inversion of Control,翻转资源获取方向。 

DI:Dependency Injection,翻译过来是依赖注入

IOC 就是一种反转控制的思想, 而 DI 是对 IOC 的一种具体实现。

IOC 控制反转- 翻转资源获取方向。 IOC降低耦合度,降低程序之间的依赖。

IOC 容器中管理的组件也叫做 bean

IOC容器管理的对象叫做组件,或者 bean

<!-- 配置HelloWorld所对应的bean,即将HelloWorld的对象交给Spring的IOC容器管理 通过bean标签配置IOC容器所管理的bean 属性: id:设置bean的唯一标识 class:设置bean所对应类型的全类名 --> <bean id="helloworld" class="com.dzqc.bean.HelloWorld"></bean>

获取bean的方式有三种:

  1. 根据id获取 返回Object类型,向下转型
  2. 根据类获取(常用) 要求Spring配置文件中同类型有且只配置了一个bean时,根据类获取 如果同类型配置了多一个bean,出现异常NoUniqueBeanDefinitionException 如果未对某类配置bean,出现异常:NoSuchBeanDefinitionException
  3. 根据id和类获取

依赖注入可以理解为:对IOC容器管理的bean(组件,对象)的属性进行赋值

依赖注入 例:对Student类中的属性sid,sname,age,gender进行赋值 Student类依赖属性sid,sname,age,gender

配置bean
bean主鍵:spring的ioc容器管理的对象
IOC容器通过工厂模式(BeanFactory)+反射机制(无参构造方法)创建对象
在spring的ioc容器管理的对象是单例模式(饿汉,懒汉)

依赖注入DI

  1. set方法<property name=“” value=“”></property>
  2. 构造器(构造方法)
    通过构造方法对对象属性的赋值
    constructor-arg构造方法的参数
    在constructor-arg中不指定姓名,会按照有参构造方发的参数顺序进行赋值,
    如果值与构造方法中对应位置的参数类型不一致,也无法进行自动转换则会出现异常

<constructor-arg value=""></constructor-arg>

  1. 特殊值  

null   property的属性不能包含特殊符号  中间<null/>

包含特殊符号:
        方式一:字符实体  &开头
        方式二:CDATA  <![CDATA[<程顺顺123>]]>

给类类型赋值

方式一:引用外部bean

方式二:内部bean  不能被ioc容器获取到

给数组类型对象hobby赋值

<array>

<value></value>

</array>

list集合赋值

(1)(内部)

<list>
    <ref bean="studentTwo"></ref>
    <ref bean="studentThree"></ref>
    <ref bean="studentFore"></ref>
</list>

  1. (外部)

<property name="students" ref="studentList"></property>

<util:list id="studentList">
   <ref bean="studentFore"></ref>
    <ref bean="studentFive"></ref>
    <ref bean="studentSix"></ref>
</util:list>

map集合类型

<map>
    <entry key="20009" value-ref="teacher2"></entry>
    <entry key="20011" value-ref="teacher3"></entry>
</map>

<!--配置teacher类的bean-->
    <bean id="teacher2" class="com.dzqc.entity.Teacher">
        <property name="tid" value="20009"></property>
        <property name="tname" value="苗萍"></property>
    </bean>
    <bean id="teacher3" class="com.dzqc.entity.Teacher">
        <property name="tid" value="20011"></property>
        <property name="tname" value="刘俊银"></property>
    </bean>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值