Spring学习杂记(一)Spring的基础核心概念

20使用限定符和类id

21java标准解决方案

/@Qualifier(“userServiceNormal”)
@Autowired
/
@Resource(name = “userServiceNormal”)//java的JDK的自带解决方案

22处理分层架构

Web------service------dao-----data
AppConfig的扫描会扫描当前包及一下
UserController(WEB层)调用service层的接口,web层用@Qualifier(“userServiceNormal”)注明使用的哪个实现类,service层再同样的调用dao层的接口,实现dao层的方法

23设置组件扫描的基础包

AppConfig的3种设置方式

24通过xml启用组件扫描

@ContextConfiguration(“classpath:applicationContext.xml”)
用xml文件替换AppConfig

25警告信息

26第二张总结

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190619170705498.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMjkzNzMx,size_16,color_FFFFFF,t_70)

27第三章

添加第三方配置

28配置bean对象

在AppConfig中创建第三方的对象

29通过构造函数依赖注入

@Bean拦截所有创建的对象,查看是否创建

30在@Bean中使用参数

可以在已经创建的@Bean的方法里直接添加已经存在的对象

31通过settter方法注入

通过setter方法设置对象

32处理自动装配的歧义性

同样的三种方式辨别@Qualifier、id名、@Bean取名字

33第三章总结

34第四章总结XML装配

35创建xml配置规范

配置名约定俗成

36定义一个Bean

Xml文件自动创建Bean

37第二个Bean

Xml文件中给对象bean设置名字

38使用单元测试

选择同样的Bean使用的对象是一样的

39id和name

分号空格逗号
Name可以同时建立多个

<bean name ="compactDisc1 compactDisc12" class="demo.soundsystem.CompactDisc"/><!--分号空格逗号-->

同一个name的对象运行的地址都是同一个

40通过构造函数注入

Xml<constructor-arg ref="compactDisc1"/>

连接之前的类依赖注入

41c名称控件注入

42注入简单类型

可以使用c名称空间注入、name、type等

43注入list类型

设置类并且使用ref

44注入set类型

List
Set
使用的类装配不同,set会同化掉重复名的对象

45注入map集合类型注入

<entry key="m3" value-ref="music3"/>

46注入数组类型

<array>
    <ref bean="music1"/>

同样的方法

47属性注入

Set方法自动注入属性

<property name="title" value="告白气球"/>

48属性注入列表和数组说明

<bean id="music1" class="demo.soundsystem.Music">
    <property name="title" value="告白气球"/>
    <property name="duration" value="251"/>
</bean>
<bean id="music2" class="demo.soundsystem.Music">
    <property name="title" value="爱情废材"/>
    <property name="duration" value="305"/>
</bean>

<bean id="compactDisc1" class="demo.soundsystem.CompactDisc">
    <property name="title" value="周杰伦的床边故事"/>
    <property name="artist" value="周杰伦"/>
    <property name="tracks" >
        <array>
        <ref bean="music1"/>
        <ref bean="music2"/>
        </array>
    </property>
</bean>

49属性注入对象引用

@Autowired
private CDPlayer cdPlayer;

@Test
public void test(){
    cdPlayer.play();
}
50p名称空间注入
<bean id="music2" class="demo.soundsystem.Music"
p:title="爱情废材" p:duration="305"
>

集合数组没有pm名称

51util名称空间注入

可以处理集合数组类型

<util:list id="list1">
    <array>
        <ref bean="music1"/>
        <ref bean="music2"/>
    </array>
</util:list>

52第四章总结

Id和name区别
通过构造函数进行依赖注入
构造函数注入
1、constructor-arg元素

<constructor-arg name="title" type="java.lang.String" value="I Do"/>

2、C-名称空间

<bean id="compactDisc2" class="demo.soundsystem.CompactDisc"
    c:title="周杰伦的床边故事"
      c:artist="周杰伦"
/>

集合注入
List、Set、Map、数组

<array>
    <ref bean="music1"/>
</array>
属性注入

1、property元素
2、P-名称空间

<bean id="compactDisc1" class="demo.soundsystem.CompactDisc" p:title="周杰伦的床边故事"
      p:artist="周杰伦" p:tracks-ref="list1"
      />

3、Util名称空间

<util:list id="list1">

        <ref bean="music1"/>
        <ref bean="music2"/>

</util:list>

三种装配方式
1、自动装配
2、Java装配
3、XML装配

53第五章

高级装配

54Spring中的单例bean

Scope=singleton
无论我们是否主动获取bean对象,Spring上下文一定会自动创建对象
无论我们获取多少次,拿到的都是同一个对象
无论我们注入多少次,拿到的都是同一个对象
Scope=prototype
无论我们是否主动获取bean对象,Spring上下文不会自动创建对象
无论我们获取多少次,拿到的都是不同个对象
无论我们注入多少次,拿到的都是不同个对象

55bean的作用域

Scope四个类型
在这里插入图片描述

56自动定义bean的作用域

57javaconfig中定义bean的作用域

@Configuration
public class Appconfig {
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public Netopad3 netopad3(){
return new Netopad3();
}
}

58延迟加载

在获取对象时加载对象
SCOPE_PROTOTYPE默认按需加载

59对象的初始化和销毁

60工厂方法创建对象

<!--静态工厂-->
<bean id="person1" class="demo.PersonFactory" factory-method="createPerson"/>
<!--实例工厂-->
<bean id="personFactory" class="demo.PersonFactory"/>
<bean id="person2" factory-bean="personFactory" factory-method="createPerson2"/>

61第五章总结

作用域配置
在这里插入图片描述

延迟加载
在这里插入图片描述

初始化方法和销毁方法

在这里插入图片描述
工厂
在这里插入图片描述

引用
spring学习教程
spring详解
https://www.cnblogs.com/wmyskxz/p/8824597.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值