Spring4.0MVC学习资料,简单学习教程(一)

简介: <p><span style="color:rgb(68,68,68); font-family:'Microsoft Yahei','Helvetica Neue','Luxi Sans','DejaVu Sans',Tahoma,'Hiragino Sans GB',STHeiti; font-size:16px; line-height:26px">Spring Framework

Spring Framework 4.0 学习整理。

Spring框架的核心部分就是Ioc容器,而Ioc控制的就是各种Bean,一个Spring项目的水平往往从其XML配置文件内容就能略知一二,很多项目,往往是外包公司的项目,配置文件往往是乱七八糟,抱着能跑就行,不报错就行的态度去写,然后在项目中后期发现各种缺失又去一通乱补,其结果就是,整个文档可读性极差,毫无章法。这也不能怪写这个XML的人,拿着苦逼程序员的工资干着架构师的工作必然是这个结果。为了程序员的幸福,我认为有必要来一套简单快速的官方文档核心配置归纳整理和解释,好让苦逼猿们在工作中能正确快速的提高自身和项目的整体水平。

看代码:

package com.herman.ss.test;

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

import com.herman.ss.pojo.Person;
/**
 * @see spring4.0.0最新稳定版新特性,简单时候教程1
 * @author Herman.Xiong
 * @date 2014年7月18日14:49:42
 */
public class Test0 {
	/**
	 * @see spring4.0简单使用教程0
	 */
	public static void test0(){
		//1.加载配置文件
		ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml");
		//2.获取bean实例
		Person person0=(Person)ctx.getBean("person0");
		//3.打印bean属性
		System.out.println(person0);
		//4.给bean属性复制
		person0.setName("herman");
		person0.setAge(20);
		System.out.println(person0);
	}
	/**
	 * @see spring4.0简单使用教程1
	 */
	public static void test1(){
		//1.加载配置文件
		ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml");
		//2.获取bean实例 只存在一个bean实例的时候可以使用Person.class 获取bean
		Person person0=(Person)ctx.getBean(Person.class);
		//3.打印bean属性
		System.out.println(person0);
		//4.给bean属性复制
		person0.setName("herman");
		person0.setAge(20);
		System.out.println(person0);
	}
	/**
	 * @see spring4.0简单使用教程2
	 */
	public static void test2(){
		//1.加载配置文件
		ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml");
		//2.获取bean实例,这是不能使用Person.class获取bean了,因为这时配置了两个Person bean,只能根据bean的id获取bean
		Person person0=(Person)ctx.getBean("person1");
		//3.打印bean属性
		System.out.println(person0);
	}
	/**
	 * @see spring4.0简单使用教程3  使用value为对象属性赋值
	 */
	public static void test3(){
		//1.加载配置文件
		ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml");
		//2.获取bean实例	
		Person person0=(Person)ctx.getBean("person2");
		//3.打印bean属性
		System.out.println(person0);
	}
	/**
	 * @see spring4.0简单使用教程4  使用bean的构造函数注入
	 */
	public static void test4(){
		//1.加载配置文件
		ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml");
		//2.获取bean实例	
		Person person0=(Person)ctx.getBean("person3");
		//3.打印bean属性
		System.out.println(person0);
	}
	/**
	 * @see spring4.0简单使用教程5  使用bean的type为属性赋值
	 */
	public static void test5(){
		//1.加载配置文件
		ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml");
		//2.获取bean实例	
		Person person0=(Person)ctx.getBean("person4");
		//3.打印bean属性
		System.out.println(person0);
	}
	/**
	 * @see spring4.0简单使用教程6  使用bean的引用对象以及null对象
	 */
	public static void test6(){
		//1.加载配置文件
		ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml");
		//2.获取bean实例	
		Person person0=(Person)ctx.getBean("person5");
		//3.打印bean属性
		System.out.println(person0);
	}
	/**
	 * @see spring4.0简单使用教程7  使用bean的引用对象以及使用index下标为bean属性赋值
	 */
	public static void test7(){
		//1.加载配置文件
		ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml");
		//2.获取bean实例	
		Person person0=(Person)ctx.getBean("person5");
		//3.打印bean属性
		System.out.println(person0);
	}
	public static void main(String[] args) {
		//test0();
		//test1();
		//test2();
		//test3();
		//test4();
		//test5();
		//test6();
		test7();
	}
}

配置文件applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
			http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
           http://www.springframework.org/schema/context 
           http://www.springframework.org/schema/context/spring-context-4.0.xsd
           http://www.springframework.org/schema/aop 
           http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
           http://www.springframework.org/schema/tx 
           http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
           
	<bean id="person0" class="com.herman.ss.pojo.Person"></bean>
	
	<bean id="person1" class="com.herman.ss.pojo.Person">
		<property name="age" value="20"></property>
		<property name="name" value="herman"></property>
	</bean>
	
	<bean id="person2" class="com.herman.ss.pojo.Person">
		<property name="age">
			<value>20</value>
		</property>
		<property name="name">
			<value>herman</value>
		</property>
	</bean>
	
	<bean id="person3" class="com.herman.ss.pojo.Person">
		<constructor-arg name="name" value="herman"></constructor-arg>
		<constructor-arg name="age" value="20"></constructor-arg>
	</bean>
	
	<bean id="person4" class="com.herman.ss.pojo.Person">
		<constructor-arg type="int" value="20"></constructor-arg>
		<constructor-arg type="java.lang.String" value="herman"></constructor-arg>
	</bean>
	
	<bean id="house" class="com.herman.ss.pojo.House">
		<constructor-arg>
			<null></null>
		</constructor-arg>
		<constructor-arg name="address" value="Shanghai"></constructor-arg>
		<constructor-arg name="price" value="10000000.12"></constructor-arg>
	</bean>
	
	<bean id="person5" class="com.herman.ss.pojo.Person">
		<constructor-arg type="int" value="20"></constructor-arg>
		<constructor-arg type="java.lang.String" value="herman"></constructor-arg>
		<constructor-arg type="com.herman.ss.pojo.House" ref="house"></constructor-arg>
	</bean>
	
	<bean id="person6" class="com.herman.ss.pojo.Person">
		<constructor-arg type="int" value="20" index="1"></constructor-arg>
		<constructor-arg value="herman" index="0"></constructor-arg>
		<constructor-arg type="com.herman.ss.pojo.House" ref="house"></constructor-arg>
	</bean>
</beans>

<bean   class=”这个Bean的类”   name/id=”Bean在容器里面的唯一名称” 
scope=”Bean的生命周期,详细解释看下面”  
autowiring-mode=”这个Bean的properties的自动注入方式,详细解释看下面”  
lazy-init=”是否为懒加载,详细解释看下面“
init-method=”容器初始化该Bean后的回调方法,详细解释看下面”  
destroy-method = “容器在销毁该Bean后的回调方法,详细解释看下面“    
abstract=”是否为抽象Bean,主要用来统一XML配置文档里面的很多Bean的属性配置,与Java的Abstract Class无任何关系”
parent=”父Bean的名称,会继承父Bean的属性,也是只在配置文档中有效,与Java的Class无任何关系”
factory-method=”工厂方法的名字”
factory-bean=”工厂Bean的名字”
depends-on =”依赖Bean的名字,Spring保证会在初始化这个Bean前先初始化被依赖的Beans,这个属性不会被子Bean继承,子Bean要重新写自己的depends-on”      
autowire-candidate = “是否为自动注入的候选,一般当其他Bean设置autowiring-mode属性为自动搜寻时可以避免或允许该Bean被列入匹配列表”    
primary = “是否将该Bean在其他Bean的自动注入候选人中设为首选” >
// Constructor-arg方式给属性赋值写法一
<constructor-arg type=”int” value=”7500000″/>// Constructor-arg方式给属性赋值写法二
        <constructor-arg name=”years” value=”7500000″/>// Constructor-arg方式给属性赋值写法三
        <constructor-arg index=”0″ value=”7500000″/>// Properties方式给属性赋值写法一
        <property name=”beanOne”>
        <ref bean=”另外一个Bean的名字”/>
        </property>// Properties方式给属性赋值写法二
        <property name=”beanOne” ref=”另外一个Bean的名字“/>// Properties方式给属性赋值写法三
        <property name=”integerProperty” value=”1″/>
</bean>

项目结构:

项目整合了struts2和spring4.0.6的jar包。

jar包下载:http://download.csdn.net/download/xmt1139057136/7649389      点击下载

如有疑问,请加qq群:135430763 共同学习!

目录
相关文章
|
30天前
|
缓存 前端开发 Java
Spring MVC 面试题及答案整理,最新面试题
Spring MVC 面试题及答案整理,最新面试题
85 0
|
30天前
ssm(Spring+Spring mvc+mybatis)——updateDept.jsp
ssm(Spring+Spring mvc+mybatis)——updateDept.jsp
10 0
|
30天前
ssm(Spring+Spring mvc+mybatis)——showDept.jsp
ssm(Spring+Spring mvc+mybatis)——showDept.jsp
9 0
|
30天前
|
网络安全
ssh(Spring+Spring mvc+hibernate)——DeptDaoImpl.java
ssh(Spring+Spring mvc+hibernate)——DeptDaoImpl.java
11 0
|
30天前
|
网络安全
ssh(Spring+Spring mvc+hibernate)——BaseDaoImpl.java
ssh(Spring+Spring mvc+hibernate)——BaseDaoImpl.java
12 0
|
29天前
|
SQL JavaScript Java
springboot+springm vc+mybatis实现增删改查案例!
springboot+springm vc+mybatis实现增删改查案例!
23 0
|
29天前
|
SQL Java 数据库连接
挺详细的spring+springmvc+mybatis配置整合|含源代码
挺详细的spring+springmvc+mybatis配置整合|含源代码
35 1
|
7天前
|
数据采集 前端开发 Java
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
21 3
|
7天前
|
存储 前端开发 Java
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
13 1
|
7天前
|
前端开发 Java Spring
数据之桥:深入Spring MVC中传递数据给视图的实用指南
数据之桥:深入Spring MVC中传递数据给视图的实用指南
24 3