一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第16天,点击查看活动详情。
有参构造注入
在要注入属性的bean标签中进行配置。前提是该类有提供对应的有参构造。
<!--使用有参构造进行注入 使用constructor-arg标签 构造器里面有多少参数,就写多少-->
<bean class="com.sangeng.domain.Student" id="student2" >
<constructor-arg name="name" value="自挂东南枝"></constructor-arg>
<constructor-arg name="age" value="20"></constructor-arg>
<constructor-arg name="id" value="30"></constructor-arg>
<constructor-arg name="dog" ref="dog"></constructor-arg>
</bean>
使用有参构造进行注入 使用constructor-arg标签 构造器里面有多少参数,就写多少
Lombok
配置lombok后只需要添加注解,就可以实现set和get方法,可以通过idea快捷键alt + 7 显示方法,可以查看到方法
前提需要安装插件
①导入依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</dependency>
②增加注解
@Data //根据属性生成set,get方法
@NoArgsConstructor //生成空参构造
@AllArgsConstructor //生成全参构造
public class Phone {
private double price;
private String name;
private String password;
private String path;
}
SPEL表达式
我们可以再配置文件中使用SPEL表达式。写法如下:
里边可以写一些简单计算,也可以写一些beanID
<property name="age" value="#{20 + 10}"/>
<property name="car" value="#{car}"/> 等价于 <property name="car" ref="car"/>
注意:SPEL需要写到value属性中,不能写到ref属性。
配置文件
读取properties文件
我们可以让Spring读取properties文件中的key/value,然后使用其中的值。
①设置读取properties
在Spring配置文件中加入如下标签:指定要读取的文件的路径。
<context:property-placeholder location="classpath:filename.properties">
其中的classpath表示类加载路径下。
我们也会用到如下写法:classpath: *.properties 其中的 * 表示文件名任意。
引入成功后头部文件就是这样:
xmlns:context="http://www.springframework.org/schema/context"
注意:context命名空间的引入是否正确
②使用配置文件中的值
在我们需要使用的时候可以使用${key}来表示具体的值。注意要再value属性中使用才可以。例如:
<property name="propertyName" value="${key}"/>
测试运行
<bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="${jdbc.url}"/>
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
@Test
public void testExperiment06() throws SQLException {
private ApplicationContext iocContainer = new ClassPathXmlApplicationContext("applicationContext.xml"
DataSource dataSource = iocContainer.getBean(DataSource.class);
Connection connection = dataSource.getConnection();
System.out.println("connection = " + connection);
}
}
引入Spring配置文件
我们可以在主的配置文件中通过import标签的resource属性,引入其他的xml配置文件
<import resource="classpath:applicationContext-book.xml"/>
比如引入数据库的配置文件
<bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="${jdbc.url}"/>
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</bean>