天天看點

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和注解開發的比較