Spring_02

注意:注入基本类型值在本质上就是依赖注入,而且是利用的set方式进行的依赖注入

1 注入基本类型的值

  <property name="基本类型的成员变量名" value="值"/>

2 注入集合类型的值(直接注入)

  2.1 注入list类型的值

1             <property name="interest">
2       <list>
3         <value>钓鱼</value>
4         <value>做饭</value>
5         <value>看电视</value>
6         <value>看电视</value>
7       </list>
8     </property>        

注入list类型的配置文件格式

  2.2 注入set类型的值

1 <property name="city">
2     <set>
3         <value>北京</value>
4         <value>长沙</value>
5         <value>武汉</value>
6         <value>武汉</value>
7     </set>
8 </property>                

注入set类型的配置文件格式

  2.3 注入map类型的值

1 <property name="score">
2     <map>
3         <entry key="英语" value="80"/>
4        <entry key="math" value="90"/>
5     </map>
6 </property>    

注入map类型的配置文件格式

  2.4 注入properties类型的值

1 <property name="db">
2     <props>
3         <prop key="username">King</prop>
4         <prop key="password">1234</prop>
5     </props>
6 </property>

注入properties类型的配置文件格式

3 注入集合类型的值(利用引用注入)

 1 <util:list id="interestBean">
 2         <value>游泳</value>
 3         <value>台球</value>
 4         <value>编程</value>
 5     </util:list>
 6     <util:set id="cityBean">
 7         <value>北京</value>
 8         <value>长沙</value>
 9         <value>南昌</value>
10     </util:set>
11     <util:map id="scoreBean">
12         <entry key="english" value="80"/>
13         <entry key="math" value="90"/>
14     </util:map>
15     <util:properties id="dbBean">
16         <prop key="username">Sally</prop>
17         <prop key="password">1234</prop>
18     </util:properties>
19     <!--
20         以引用的方式注入集合类型的值。
21      -->
22     <bean id="vb2" class="value.ValueBean">
23         <property name="interest"
24         ref="interestBean"/>
25         <property name="city"
26         ref="cityBean"/>
27         <property name="score"
28         ref="scoreBean"/>
29         <property name="db"
30         ref="dbBean"/>
31     </bean>

利用引用给集合类型注入值的配置文件格式

4 利用注解进行简化配置

  4.1 与类有关的4个注解

    @respository("id属性值")  -> 用于持久层

    @controller("id属性值")  -> 用于控制层
    @service("id属性值")  -> 用于服务层
    @component("id属性值")  -> 通吃

    注意:id属性值 一般是 类的首字母小写后的结果

  4.2 其他注解  

    @Scope("singleton") -->> 设置作用域
    @Lazy(true) -->> 设置延迟加载
    @PostConstruct -->> 设置初始化方法
    @PreDestroy -->> 设置销毁方法
    @Value("warrior") -->> 给成员变量注入值

5 使用spring表达式去读取其他bean的属性

 1 <bean id="sb1" class="value.SpelBean">
 2         <property name="name"
 3         value="#{vb1.name}"/>
 4         <property name="interest"
 5         value="#{vb1.interest[1]}"/>
 6         <property name="score"
 7         value="#{vb1.score[‘英语‘]}"/>
 8         <property name="pageSize"
 9         value="#{config[‘jdbc.pagesize‘]}"/>
10 </bean>

spring表达式

6 依赖注入

  6.1 @Autowired 和 @Qualifier("student")

    直接将这两行写到 注入变量上面就行啦;支持 set注入 和 构造器注入

  6.2 @Resource(name="student")  -->> 一般都用这个

    Resource 的包在 servlet-api.jar,所以需要配置一下运行环境;只支持 构造器注入

7 使用了注解后必须在spring配置文件中配置注解扫描

  注解扫描

    容器会扫描指定包及其子包下面的所有的类,如果类前面添加了特定的注解(比如@Component),则容器会将这个类纳入容器进行管理(相当于配置了一个bean,其中,bean的id默认值等于首字母小写之后的类名)

  <context:component-scan base-package="annotation"/>

  

本博客源代码:点击前往

时间: 2024-10-05 22:54:59

Spring_02的相关文章

spring_02注解 和插件配置以及与juint整合

使用注解配置spring 导包 (4+2+spring-aop) 在新版本中需要srping-aop包,注解才能够使用 为主配置文件引入context命名空间(约束) xmlns:context="http://www.springframework.org/schema/context" 开启使用注解代理配置文件 <!-- 指定扫描org.spring包下的所有类中的注解 注意:会扫描org.spring包下的所有子孙包和文件--> <context:compone

spring_02工具及接口案例

1.spring工具类:ApplicationContextUtil.java,可以返回加载配置文件的容器对象 package com.ahd.utils; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class ApplicationContextUtil { sta

阶段3 2.Spring_02.程序间耦合_3 程序的耦合和解耦的思路分析1

编译时没有对应需要的jar包就报错.这特性就理解为程序的耦合 这种方式,它不是个错误而是个异常.编译的时候没有问题.运行时才会报错. 把注释的代码放开 程序可以正常运行 解决类之前依赖的思路 一个依赖的是具体的驱动类.第二个通过反射去创建依赖的只是一个字符串.这样可以减少耦合.这样同样导致的问题是.驱动的字符串在这里写死了.如果要更新数据库的话.这里还要改.可以通过读取配置文件的方式解决这个问题 原文地址:https://www.cnblogs.com/wangjunwei/p/11336449

阶段3 2.Spring_02.程序间耦合_2 编译期依赖

通过maven可以看到这个资源不存在 找到本地仓库,mysql 5.17确实没有jar包 在pom.xml内把版本改成5.16 5.1.6在本地仓库内是完整的版本 运行我们的测试方法 把依赖注释掉 再次运行.这是编译器就遇到的异常 在实际写代码过程中,可能会遇到很多 在编译器就报错的,这就证明了这个类在没有依赖类的情况下是不能编译的 原文地址:https://www.cnblogs.com/wangjunwei/p/11336413.html

阶段3 2.Spring_02.程序间耦合_1 编写jdbc的工程代码用于分析程序的耦合

创建新项目.不选择骨架 打包方式选择是jar 增加mysql的包依赖 创建demo类来讲解程序的耦合 原来里面提供了sql语句.拿到mysql没执行 原文地址:https://www.cnblogs.com/wangjunwei/p/11336345.html