spring--常见错误

常见错误:

1、如果在getBean的时候,传入的id不存在,就会报以下错误:

spring--常见错误_第1张图片

2、IOC示例程序 --通过类型获取对象(重点):

实验2:根据bean的类型从IOC容器中获取bean的实例★

 

示例程序代码:

当applicationContext.xml配置文件中,只有一个Person.class的对象实例配置的时候,程序是可以正常运行的。

 

   @Test

   publicvoid test2() {

      // applicationContext 就是 IOC容器

      // ClassPathXmlApplicationContext是容器的实现类

      ApplicationContext applicationContext = newClassPathXmlApplicationContext("classpath:applicationContext.xml");

      // 从容器中获取 id 为 person 定义的对象

      Person person = (Person) applicationContext.getBean(Person.class);

      System.out.println( person);

   }

 

在applicationContext.xml配置文件中:



	
	
		
		
		
		
		
	
	
	xypuxing
.pojo.Person">

常见错误说明:

当在applicationContext.xml配置文件中。有多个同Person.class类型实现的时候。

3、IOC示例程序 -- 通过构造方法参数名注入值

实验3:通过构造器为bean的属性赋值

applicationContext.xml配置文件中的内容:



   

      

      

      

      

      

     

Person类的有参构造方法中添加打印:

spring--常见错误_第2张图片

示例代码:

	@Test
	public void test3() {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		Person person03 = (Person) applicationContext.getBean("person03");
		System.out.println(person03);
	}
spring--常见错误_第3张图片
4、IOC示例程序 -- index属性指定参数的位置

实验4:通过index属性指定参数的位置

applicationContext.xml配置文件中的内容:

	
	
		
		
		
		
		
	

示例代码:

@Test
	public void test4() {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		Person person04 = (Person) applicationContext.getBean("person04");
		System.out.println(person04);
	}

spring--常见错误_第4张图片

5、IOC示例程序 -- 根据参数类型注入

实验5:根据参数类型注入

applicationContext.xml配置文件中的内容:


	xypuxing.pojo.Person">
		
		
		
		
		
		
	

示例代码:

@Test
	public void test5() {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		Person person05 = (Person) applicationContext.getBean("person05");
		System.out.println(person05);
	}

spring--常见错误_第5张图片

6、ioc之P空间:

实验6:通过p名称空间为bean赋值

先打开applicationContext.xml配置文件,添加P名称空间:

spring--常见错误_第6张图片

在applicationContext.xml中的配置

  

   <bean id="person06"class="com.xypuxing.pojo.Person"p:id="6"p:name="第6个人" p:age="18" p:phone="18600001111"/>

示例代码:

   @Test

   publicvoid test6() {

      ApplicationContext applicationContext= newClassPathXmlApplicationContext("applicationContext.xml");

      Person person06 = (Person)applicationContext.getBean("person06");

      System.out.println(person06);

   }

spring--常见错误_第7张图片

7、测试null值的使用:

实验7:测试使用null值

修改Person类的属性,添加默认值
public class Person {

	private int id;
	private String name;
	private int age;
	private String phone = "默认值";

applicationContext.xml中配置的内容
	
		
			
		
    

测试的代码:
	@Test
	public void test7() {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		Person person07 = (Person) applicationContext.getBean("person07");
		System.out.println(person07);
	}
spring--常见错误_第8张图片

7、IOC之子对象的赋值测试(重点)

实验8:引用其他bean★

创建个新的工程。测试Spring的开发环境。此不重复。请参阅前面,环境搭建。

创建实体Bean对象

publicclass Car {

   private String name;

   private String carNo;

publicclass Person {

   privateintid;

   private String name;

   privateintage;

   private String phone;

   private Car car;

 

在applicationContext.xml中配置如下:

  

   <bean id="car"class="com.atguigu.pojo.Car"p:name="宝马" p:carNo="粤B12312" />

  

   <bean id="person10"class="com.xypuxing.pojo.Person">

      <property name="id" value="10"/>

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

      <property name="age" value="18"/>

      <property name="phone" value="0101001"/>

     

      <property name="car" ref="car"/>

   bean>

测试的代码:

   @Test

   publicvoid test10() {

      //创建容器对象

      ApplicationContext applicationContext= newClassPathXmlApplicationContext("applicationContext.xml");

      Person person10 = (Person) applicationContext.getBean("person10");

      System.out.println(person10);

   }

spring--常见错误_第9张图片

8、IOC之内部Bean的使用:

实验9:引用内部bean
在applicationContext.xml中的配置:
	
		
		
		
		
		
		
			
		
	

测试代码:
	@Test
	public void test11() {
		//创建容器对象
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		Person person11 = (Person) applicationContext.getBean("person11");
		System.out.println(person11);
		
		System.out.println( applicationContext.getBean("car02") );
	}

内部的Bean不能被外部使用

spring--常见错误_第10张图片

9、IOC之List属性的赋值

实验10:使用list子元素为List类型的属性赋值
给Person类,添加List集合的属性:
public class Person {
	private int id;
	private String name;
	private int age;
	private String phone;
	private Car car;
	private List phones;

在applicationContext.xml 配置文件中的内容:
	
		
		
		
		
		
		
			
		
		
		
			
				18611110000
				18611110001
				18611110002
			
		
	

测试的代码:
	@Test
	public void test12() {
		//创建容器对象
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		Person person12 = (Person) applicationContext.getBean("person12");
		System.out.println(person12);
	}

spring--常见错误_第11张图片

10、IOC之Map属性的赋值:

实验11:使用map子元素为Map类型的属性赋值

给Person对象添加Map属性

publicclass Person {

   privateintid;

   private String name;

   privateintage;

   private String phone;

   private Car car;

   private List phones;

   private Map map;

 

在applicationContext.xml中的配置

   

      

      

      

      

      

      

         

      

      

      

         

            

            

            

            

         

      

   

 

测试的代码:

   @Test

   publicvoid test13() {

      //创建容器对象

      ApplicationContext applicationContext= newClassPathXmlApplicationContext("applicationContext.xml");

      Person person13 = (Person)applicationContext.getBean("person13");

      System.out.println(person13);

   }
spring--常见错误_第12张图片

11、IOC之Properties属性的赋值:

实验12:使用prop子元素为Properties类型的属性赋值
给Person对象添加Properties属性
public class Person {
	private int id;
	private String name;
	private int age;
	private String phone;
	private Car car;
	private List phones;
	private Map map;
	private Properties props;

在applicationContext.xml中的配置
	
		
		
		
		
		
		
			
				root
				root
				com.mysql.jdbc.Driver
				jdbc:mysql://localhost:3306/spring
			
		
    

测试的代码
	@Test
	public void test14() {
		//创建容器对象
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		Person person14 = (Person) applicationContext.getBean("person14");
		System.out.println(person14);
	}

spring--常见错误_第13张图片

12、IOC之util 名称空间:

util名称空间,可以定义
实验13:通过util名称空间创建集合类型的bean
添加util名称空间

spring--常见错误_第14张图片

applicationContext.xml中的配置
	
	
		string1
		string2
		string3
	

	
		
		
		
		
		
		
	

测试的代码:
	@Test
	public void test15() {
		//创建容器对象
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		Person person15 = (Person) applicationContext.getBean("person15");
		System.out.println(person15);
		
		List list = (List) applicationContext.getBean("list1");
		System.out.println(list);
	}

spring--常见错误_第15张图片

13、IOC之级联属性赋值:

实验14:给bean的级联属性赋值
applicationContext.xml中的配置
	
		
		
		
		
		
		
		
		
	

测试的代码
	@Test
	public void test16() {
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		Person person16 = (Person) applicationContext.getBean("person16");
		System.out.println( person16 );
	}
spring--常见错误_第16张图片

你可能感兴趣的:(JAVA基础,java知识点,java框架之mybatis)