Spring的IOC部分(续)

2.Spring的IOC部分
 
 2.1、bean 对象的属性赋值
              根据属性值的类型:
      值注入:value
      引用注入:ref
    根据属性注入的方式:
       构造器
       set 方法
       注解的方式
  
 2.2给对象的属性赋值
    complex类:
    
public class ComplexBean {
//提供getter、setter、toString()方法
private
Object[] arr;
private
List list;
private
Set
set ;
private
Map
map;
private
Properties properties;
}
 
            applicationContext.xml:
 
<bean id="book01" class="com.atguigu.bean.Book">
<property
name="bid" value="100"/>
<property
name="bookName" value="为奴十二年"/>
<property
name="price" value="100.9"/>
</bean>
<bean class="com.atguigu.ComplexBean">
<!-- 1.针对数组类型的属性,用array标签 -->
<property name="arr">
<array>
<value>33</value>
<bean class="com.atguigu.bean.Book">
<property
name="bid" value="100"/>
<property
name="bookName" value="小红书"/>
<property
name="price" value="100.8"/>
</bean>
<ref bean="book01"></ref>
</array>
</property>
<!-- 2.针对list类型的属性,用list标签-->
<property name="list">
<list>
<value>33</value>
<bean class="com.atguigu.bean.Book">
<property
name="bid" value="100"/>
<property
name="bookName" value="小红书"/>
<property
name="price" value="100.8"/>
</bean>
<ref bean="book01"></ref>
</list>
</property>
<!-- 3.针对Set类型的属性,用set标签-->
<property name="set">
<set>
<value>33</value>
<bean class="com.atguigu.bean.Book">
<property
name="bid" value="100"/>
<property
name="bookName" value="小红书"/>
<property
name="price" value="100.8"/>
</bean>
<ref bean="book01"></ref>
</set>
</property>
<!-- 4.针对Map类型的属性,用map标签嵌套entry标签-->
<property name="map">
<map>
<entry
key="key1" value="value1"></entry>
<entry
key-ref="book01" value="value2"></entry>
<entry
key="key3" value-ref="book01"></entry>
<entry
key-ref="book01" value-ref="book01"></entry>
</map>
</property>
<!-- 5.针对Properties类型的属性,用Props标签嵌套prop标签-->
<property name="properties">
<props>
<prop
key="key1">value1</prop>
<prop
key="key2">value2</prop>
<prop
key="key3">value3</prop>
</props>
</property>
 
 2.3 SPEL表达式
    SPEL:全称 Spring Expression Language:Spring 的表达式语言
    SPEL 语法:#{}
    支持:
字面量:true,1,”张三”
普通对象[普通对象属性,普通对象的普通方法]
类的静态属性、方法
各种各样的运算符:
①算术运算符:+、-、*、/、%、^
②字符串连接:+
③比较运算符:<、>、==、<=、>=、lt、gt、eq、le、ge
④逻辑运算符:and, or, not, |
⑤三目运算符:判断条件?判断结果为true时的取值:判断结果为false时的取值
⑥正则表达式:matches
    
 2.4基于注解的方式创建bean对象
    1.导入jar包:
      
    2.在 spring 的 配 置 文 件 中 配 置 一 个<context:component-scan
basePackage=””>
        
    3.在扫描包或者扫描包的子包下类上加@Component 注解
     
   4.测试
     
 
  2.5 常用注解
     
@Controller----------->@Service------------>@Repository
UserController------->UserService---------->UserDao
以上四个注解的共同点:
1.都标记在类上,都是在容器中生成一个对象,默认是单例的。
2.都有一个 value 属性,value 属性值表示的是当前类对象在容器中的 id 值
3.如果不指定这些注解的 value 属性的时候,当前 bean 对象在容器中的 id 值是当前类名首字母小写,如果自己指定了注解 value 属性值,在获取对象的时候,要使用自己指定的 value 属性值获取,当一个注解只有 value 属性值的时候,value=是可以省略的。
 
  2.6 @Scope
    标记在类上、方法上,使用和含义同<bean>标签的 scope 属性一样。
 
  2.7 基于注解的方式给对象的属性赋值
    @Value:相当于 xml 文件中的 value 属性值,给基本类型的属性赋值
    @Autowired:相当于 xml 文件中的 ref 属性值,给引用类型的属性赋值,Spring 框架
    @Resource:相当于 xml 文件中的 ref 属性值,给引用类型的属性赋值,JDK 中
     
 
  2.8 引用类型属性的手动与自动装配
    手动装配:
     
    自动装配:
      基于xml:
     
      基于注解:
       @Autowired
       @Resource
       强调:基于注解的方式给对象的属性赋值,不需要提供属性的 set 方法
 
  2.9 加载properties文件
    第一步:导入 jar 包:mysql 驱动包、druid 的包
     第 二 步 : 在 spring 的 配 置 文 件 中 配 置 <context:property-placeholder
location=””>
     第三步:就可以在容器中的 bean 对象中通过${}根据 properties 文件中的键取对应的值使用。
     
      第四步:测试
 
 
 
 
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值