天天看点

spring 的ioc的xml和注解开发的比较

目录

  1. 前言
  2. ioc的含义及概念
  3. 需要的开发环境
  4. spring使用xml方式
  5. spring使用注解方式开发

前言

在做springIOC和xml开发的时候,要掌握以下几点:

  1. 熟悉mvc框架
  2. 掌握Java基本语言
  3. 掌握发射

ioc的含义及概念

IOC: Inversion of Control(控制反转)。

控制反转:将对象的创建权反转给(交给)Spring。

需要的开发环境

需要导入的jar包:

spring 的ioc的xml和注解开发的比较

spring使用xml方式

applicationContext.xml文件配置如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:p="http://www.springframework.org/schema/p"
        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"> 
     <!--spring 的入门配置  -->
    <bean id="Userdao" class="com.itheima.spring.cwj.UserdaoImp">
    </bean>




    测试类
package com.itheima.spring.cwj;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Springdemo {
   @Test
   public void demo(){
	   //创建spring工厂
	   ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
	   Userdao userdao =(Userdao) applicationContext.getBean("Userdao");
	   userdao.save();
   }
}

           

Spring的属性注入

<!--spring 的入门配置  -->
    <bean id="Userdao" class="com.itheima.spring.cwj.UserdaoImp">
        <property name="name" value="陈文杰"></property>
    </bean>
       <!-- Spring 属性构造方式   构造方法的方式 -->
       <bean id="car" class="com.itheima.spring.cwj1.Car">
       <constructor-arg name="name" value="宝马"/>
       <constructor-arg name="price" value="800000"/>
       </bean>
         <!-- Spring 属性set的方式  -->
      <!--  <bean id="car2" class="com.itheima.spring.cwj1.Car2">
       <property name="name" value="奔驰"></property>
         <property name="price" value="1000000"></property>
       </bean> -->
        <!--  Spring set方法注入属性值   ref设置其他类的属性和值  -->
       <!-- <bean id="employ" class="com.itheima.spring.cwj1.Employ">
        <property name="name" value="陈文杰"/>
        <property name="car2" ref="car2"/> 
       </bean>  -->
           
测试类
           
package com.itheima.spring.cwj1;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Springdemo1 {
	//构造方法属性注入
	@Test
	public void demo(){
	ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
	Car car = (Car) applicationContext.getBean("car");
	System.out.println(car);
}
	//set方法
	@Test
	public void demo1(){
	ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
	Car2 car2 = (Car2) applicationContext.getBean("car2");
	System.out.println(car2);
}
	//属性中含有类
	@Test
	public void demo2(){
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
		Employ employ =  (Employ) applicationContext.getBean("employ");
		System.out.println(employ);
	}
           

XML的提示配置

Schema的配置

spring 的ioc的xml和注解开发的比较