基于配置文件的Spring注入

基于配置文件的Spring注入

 

1、依赖注入的概述

依赖注入指的是通过Spring配置文件的方式创建对象时,直接通过配置的方式将数据注入到该对象的标量类型属性,并从Spring容器中获取指定对象注入到该对象的引用属性中。依赖注入的方式有:

①set方法注入;               ②构造方法注入 ;               ③p标签注入。

 

 

2、<property>标签——set方法注入

①name属性:指定set方法实际名;      ② value属性:设置标量型数值;          ③ref属性:指定注入对象。

<bean name="now" class="java.util.Date"></bean>

<bean name="customerService" class="cn.gzsxt.service.CustomerService">

<property name="name" value="zhangsan"></property>

<property name="birthday" ref="now"></property>

</bean>

 (注:使用系统生成的set方法,set方法实际名与其对应属性名相同)

 

 

3、<constructor-arg>标签——构造方法注入

①name属性:指定构造方法参数名;      ②index属性:指定对应参数的位置;

③value属性:设置标量型数值;             ④ref属性:指定注入对象。               

 

<bean name="now" class="java.util.Date"></bean>

<bean name="customerService" class="cn.gzsxt.service.CustomerService">

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

<constructor-arg name="age" value="15"></constructor-arg>

<constructor-arg index="2" ref="now"></constructor-arg>

</bean>

  (注:使用<constructor-arg>标签注入,必须存在与注入参数完全匹配的构造方法)

 

4、p标签注入

引入p标签,以“p:[属性名]”和“p:[属性名]-ref ”作为<bean>标签的属性来注入数据。

<bean name="now" class="java.util.Date"></bean>

<bean name="customerService" class="cn.gzsxt.service.CustomerService" p:name="zhangsan" p:age="15" p:birthday-ref="now">

</bean>

 

 

5、注入集合数据

Spring对于注入数组、List、Set、Map、和Properties等结构的数据,分别提供了特定的标签来注入。

<!-- 数组类型 -->

<property name="arr01">
      <array>
           <value>A</value>   <value>B</value>   <value>C</value>
      </array>
</property>

<!-- Set类型 --> <property name="set02"> <set> <value>D</value> <value>E</value> <value>F</value> </set> </property>

<!-- List类型 --> <property name="list03"> <list> <value>G</value> <value>H</value> <value>I</value> </list> </property> <!-- Map类型 --> <property name="map04"> <map> <entry key="name" value="zhangsan"/> <entry key="birthday" value-ref="now"></entry> </map> </property> <!-- Properties类型 --> <property name="props05"> <props> <prop key="id">1</prop> <prop key="name">zhangsan</prop> </props> </property>
 

6、注入Properties文件的数据

Spring对Properties文件的支持,是基于opertySourcesPlaceholderConfigurer类实现的;通过Properties文件注入,必须指定其文件的路径。

<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">

<property name="locations" value="classpath:sys.properties"></property>

<property name="fileEncoding" value="UTF-8"></property>

</bean>

 

<bean name="customerService" class="cn.gzsxt.service.CustomerService">

<property name="name" value="${customer.name}"></property>

<property name="age" value="${customer.age}"></property>

</bean>

 (注:①加载Properties文件可以使用<context:property-placeholder file-encoding = "UTF-8" location = "classpath:sys.properties" />标签代替;②Properties文件默认编码格式为ISO-8859-1,需要设置为其他编码才支持中文)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

———————————————————————————————————————————————————————————————————

 

The end   万有引力+

 

-

 

-

 

-

 

-

 

-

 

 

转载于:https://www.cnblogs.com/wyyl-/p/10725169.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring配置文件有两种,一种是基于 XML 的配置文件,另一种是基于 Java配置文件。 对于基于 XML 的配置文件,一般包含以下几个部分: 1. 命名空间和约束声明 2. Bean 定义 3. 依赖注入 4. Bean 生命周期 5. AOP 配置 6. 其他配置,如数据源配置、缓存配置等 以下是一个简单的基于 XML 的 Spring 配置文件示例: ``` <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="userService" class="com.example.UserService"> <property name="userDao" ref="userDao" /> </bean> <bean id="userDao" class="com.example.UserDaoImpl"> <property name="dataSource" ref="dataSource" /> </bean> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/test" /> <property name="username" value="root" /> <property name="password" value="123456" /> </bean> </beans> ``` 对于基于 Java配置文件,一般使用注解来配置 Spring,比如使用 `@Configuration`、`@Bean`、`@Autowired`、`@Value` 等注解来定义 Bean 和依赖注入等。 以下是一个简单的基于 JavaSpring 配置文件示例: ``` @Configuration public class AppConfig { @Bean public UserService userService() { UserService userService = new UserService(); userService.setUserDao(userDao()); return userService; } @Bean public UserDao userDao() { UserDaoImpl userDao = new UserDaoImpl(); userDao.setDataSource(dataSource()); return userDao; } @Bean public DataSource dataSource() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/test"); dataSource.setUsername("root"); dataSource.setPassword("123456"); return dataSource; } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值