Spring4 快速入门

1 Spring简介

1.1 Spring是什么?

Spring 是一个 IOC 和 AOP 容器的开源框架,为简化企业级应用而生。

IOC(Inversion of Control)控制反转,不再是等待容器返回资源,而是

 主动让容器推送资源羡慕羡慕羡慕

其中DI(Dependency Injection)依赖注入,就是 IOC的一种表现方式。说白了,就是利用xml解析+java反射机制技术,读取配置文件给对象赋值罢了(也就是下面的第四步)。

AOP(Aspect Oriented Programming面向切面编程,暂时不说!!!Spring4 AOP详解

1.2 Spring 做什么

Spring就像一个管家,帮你管理事务。传统的应用,应用层(Struts2)和事务层(Service)联系很紧密,通过Spring管理之间的关系,减低其耦合性。说白了,Spring的出现就是为了解决现有问题,使开发更快捷,更健壮。若是越用越麻烦,谁还用他。另外,一定要好好学习Spring,他可是有一统天下的野心。有针对Struts2的SpringMVC,有针对Hibernate/mybatis的SpringData,以及为了简化开发的 Spring boot 和 Spring Cloud。你害怕了么?奋斗奋斗奋斗


2 入门代码

按照国际惯例,我们先来一个Hello World得意

第一步:创建maven web项目,不清楚的可以访问:http://blog.csdn.net/qq_19558705/article/details/49887717

第二步:导包。maven导包的好处,就是可以自己控制自己,把需要的最佳的依赖导入,从而减少包的冲突。


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>spring</groupId>
	<artifactId>helloworld</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<spring.version>4.2.1.RELEASE</spring.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.1.1</version>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.37</version>
		</dependency>

		<!-- spring start -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-expression</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<!-- spring end -->

	</dependencies>
</project>
第三步:HelloWorld对象
package com.spring.hello;
public class HelloWorld {
	private String hello;
	public void setHello(String hello) {
		this.hello = hello;
	}	
	public void helloWorld(){
		System.out.println("Spring say :"+hello);
	}
}
第四步:配置xml文件,要严格按照语法来写,便于Spring底层代码解析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:util="http://www.springframework.org/schema/util"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
	
	<!-- 配置一个 bean -->
	<bean id="helloWorld" class="com.spring.hello.HelloWorld">
		<!-- 为属性赋值 -->
		<property name="hello" value="Hello World"></property>
	</bean>
	
</beans>
第五步:体验一把依赖注入的快感

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class HelloTest {	
	public static void main(String[] args) {
		
		//1. 创建Spring 的IOC容器
		ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		
		//2. 从容器中获取 Bean 其实就是new 的过程
		HelloWorld helloWorld = (HelloWorld) ctx.getBean("helloWorld");
		// 也可以是,但不建议 HelloWorld helloWorld = ctx.getBean(HelloWorld.class); 
                //3. 执行函数
                helloWorld.helloWorld();
       }
}

运行结果如果打印以下内容,则说明完成

十一月 23, 2015 12:01:46 下午 org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@edbe39: startup date [Mon Nov 23 12:01:46 CST 2015]; root of context hierarchy
十一月 23, 2015 12:01:46 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [beans.xml]
Spring say :Hello World


那么一个简单的spring HelloWorld就做好了,是不是很简单!如果你觉得很简单,那么你已经打开了Spring的大门。如果你觉得很难理解,没事!多看敲几遍。原文链接:http://write.blog.csdn.net/postedit/49992021

每天都在进步,每天都在成长,如果有什么问题和建议可以留言,我会及时处理。如果你觉得不错,可以点个赞哦!

更多干货等你来拿 http://www.itit123.cn/



Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐