Spring基础知识(一)

spring概念

1.Spring是一个项目管理框架,同时也是一套Java EE解决方案。
2.Spring是众多优秀设计模式的组合(工厂、单例、代理、适配器、包装器、观察者、模板、策略)。
3.Spring并未替代现有框架产品,而是将众多框架进行有机整合,简化企业级开发,俗称"胶水框架"。

spring组成

1.核心技术:依赖注入,事件,资源,i18n,验证,数据绑定,类型转换,SpEL,AOP。
2.测试:模拟对象,TestContext框架,Spring MVC测试,WebTestClient。
3.数据访问:事务,DAO支持,JDBC,ORM,封送XML。
4.Spring MVC和 Spring WebFlux Web框架
5.集成:远程处理,JMS,JCA,JMX,电子邮件,任务,调度,缓存。
6.语言:Kotlin,Groovy,动态语言。

spring工程编码

  1. 定义目标bean类型
  2. 在applicationContext.xml文件的中配置bean标签(会使用空参构造器)< bean id=“” class=“” >
  3. 调用spring工厂API
    new ClassPathXmlApplicationContext(“applicationContext.xml”);
    ac.getBean(“applicationContext.xml中bean的id”)
    调用方法

spring依赖关系

Jar包彼此存在依赖,只需引入最外层的Jar,即可由Maven自动将相关依赖Jar引入到项目中。

控制反转(IOC)

1. 由自己创建对象,变为工厂推送(变主动为被动,即为反转)

2. 解耦操作(如service 和 dao层解耦)

(1)在service层中创建dao属性。dao实现类对象由工厂创建
(2)在主配置文件中,
< bean >
< property name=“属性名” ref=“对应类型的bean的id” >
< /bean >

3. 三种不同bean的引入形式

  1. new对象的形式:
    < bean id=" " class=" " />
  2. 类的工厂方法创建对象:
    < bean id=" " class=" " factory-method=“getInstance” />
  3. 对象调用方法创建对象
    < bean id=" " class=" " factory-bean=" 对象 " factory-mathod=" " />

依赖注入(DI)

在Spring创建对象的同时,为其属性赋值,称之为依赖注入。

set注入

1. 普通类型

<bean id="u1" class="com.qf.spring.part1.injection.User">
    <property name="id" value="1001" />
    <property name="password" value="123456" />
    <property name="sex" value="male" />
    <property name="age" value="20" />
    <property name="bornDate" value="1990/1/1" />
</bean>

2. 引用类型

<!--name=" " ref="指向另一个已存在的bean"-->
<property name="userDao" ref="userDao" />

3. 容器类型

1.array(list/set)

<property name="hobbys">
        <array>
            <value>Run</value>
        </array>
</property>

2.map

<property name="countries">
        <map>
            <entry key="CN" value="China" />
            <entry key="US" value="America" />
            <entry key="KR" value="Korea" />
        </map>
    </property>
  1. property
<property name="files">
        <props>
            <prop key="first">One</prop>
            <prop key="second">Two</prop>
            <prop key="third">Three</prop>
        </props>
    </property>

构造注入

除标签名称有变化,其他均和Set注入一致
当没有空参构造器时

<constructor-arg name=" " value=" ">
<constructor-arg index=下标从0开始 value=" ">

自动注入

  • 从目前的IOC容器中找到符合类型的bean:
    autowire=“byType”
  • 有多个符合类型的bean时,不能用byType
    autowire=“byName”
    bean里的id=类里的属性名
  • 注解版自动注入:
    自动注入

bean的生命周期

bean的生命周期

factoryBean创建复杂对象

factoryBean创建复杂对象

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值