Spring
1.从spring容器中获取管理所有对象的名称
//从Spring容器中获取所有的对象
String[] names=ac.getBeanDefinitionNames();
for (String name : names) {
System.out.println(name);
}
2.给Bean对象属性赋值方式(注入)
2.1:调用有参构造方法给属性赋值
1. 需要在类中提供匹配的有参构造方法
public class StudentServiceImpl implements StudentService {
//属性
private StudentDao dao;
//提供有参的构造方法
public StudentServiceImpl(StudentDao dao) {
this.dao = dao;
}
}
2.在配置文件中,创建对象,并调用有参构造,给属性赋值
<bean id="service" class="service.StudentServiceImpl">
<constructor-arg name="dao" ref="dao"></constructor-arg>
</bean>
2.2:设置注入(调用set方法)
1.基本类型,包装类或String类型赋值
<bean id="stu" class="pojo.Student">
<property name="sno" value="1"></property>
<property name="name" value="A"></property>
</bean>
等价于:
<property name="sno">
<value>1007</value>
</property>
<property name="name">
<value>A</value>
</property>
2.数组类型
private double[] scores;
<property name="scores">
<array>
<value>59</value>
<value>69</value>
<value>99</value>
</array>
</property>
简写:只有当数组元素只有一个值时,可以直接使用value赋值
<property name="scores" value="89"></property>
3.List集合类型
private List<String> names;
<property name="names">
<list>
<value>A</value>
<value>B</value>
<value>C</value>
<value>D</value>
</list>
</property>
4.Set集合类型
private Set<String> names;
<property name="names">
<set>
<value>A</value>
<value>B</value>
<value>C</value>
<value>D</value>
</set>
</property>
5.Map集合类型
private Map<Integer,String> gfs;
<property name="gfs">
<map>
<entry key="1" value="a"></entry>
<entry key="2" value="b"></entry>
<entry key="3" value="c"></entry>
</map>
</property>
- Property类型赋值 jdbc.properties
<property name="jdbcProperties">
<props>
<prop key="driver">Oracle.jdbc.Driver.OracleDriver</prop>
<prop key="url">jdbc:oracle...</prop>
<prop key="username">scott</prop>
<prop key="pwd">tiger</prop>
</props>
</property>
注意:
1.设置注入,必须提供对应的set方法。
2.如果值包含特殊内容<>&等时,需要进行处理:
1.<&>…
2.<![CDATA[a班&彭于晏]]>
3.DI
中文:依赖注入 英文:dependency injection
IOC和DI是一样。
当一个类对象(A)依赖于另一个类对象(B)时,将另一个类对象(B)赋值给一个类对象(A)的过程,就称为DI。
案例:
<bean id="stu" class="pojo.Student">
<property name="grade" ref="grade"></property>
</bean>
<!--创建年级对象-->
<bean id="grade" class="pojo.Grade">
<property name="name" value="B"></property>
<property name="mark" value="A..."></property>
</bean>
4.单元测试
Main方法测试缺点:一个项目中只能有一个main()。
测试多个功能方法,全部在main中。
希望针对于一个业务写一个测试方法。
实现步骤:
1.导入单元测试的jar包 (junit单元测试)
- 单元测试方法。只需要在方法上加上@Test注解
@Test
public void testAdd() {
System.out.println(“调用dao层的添加用户的方法…”);
}
注意:单元测试方法规范
- 一般不能带参数
- 不能够带返回值
- 不能带static关键字。不能定静态方法
- 单元测试方法执行顺序
1.调用无参构造示例化对象
2.调用@Before方法
3.调用@Test方法
4.调用@After 方法