1. 什么是Springjava
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由 RodJohnson 在其著做 Expert One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而建立的。框架的主要优点之一就是其分层架构,分层架构容许使用者选择使用哪个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring 使用基本的 JavaBean 来完成之前只可能由 EJB 完成的事情。然而,Spring 的用途不只限于服务器端的开发,去开发android也能够。从简单性、可测试性和松耦合的角度而言,任何 Java 应用均可以从 Spring 中受益。Spring 的核心是控制反转 (IoC)和面向切面(AOP)。简单来讲,Spring 是一个分层的 JavaSE/EEfull-stack(一站式) 轻量级 开源框架。android
2. 为何要学习Springspring
3. Spring 的版本编程
Spring 3.X 和 Spring4.X服务器
Spring 3.0.2版本:将市面上常见的、支持整合进来的工具类所有进行了收录,这个包里面有不少不少jar包。可是这是Spring坚持“作好事”的最后一个版本,没有任何回报。架构
1. IOC思想和DI技术app
(1)IOC (Inverse Of Control):控制反转,将咱们建立对象的方式反转了。框架
之前对象的建立是由开发人员本身维护,包括依赖关系也是本身注入。使用了Spring以后,对象的建立以及依赖关系能够由Spring完成建立以及注入。ide
(2)DI(Dependency Injection):依赖注入。将必须的属性注入到对象当中,是实现IOC思想的必要条件。函数
须要有 IOC 的环境,Spring 建立这个类的过程当中,Spring 将类的依赖的属性设置进去。
2. Spring中的工厂(容器)
(1)ApplicationContext
ApplicationContext接口有两个实现类:
3. Spring生成Bean的三种方式(三种对象建立方式)
对象的建立必须通过类的构造函数。
(1)空参构造建立 --最重要
在上面示例中的User对象中加一个无参构造函数
从新建立一个包,把applicationContext.xml复制进该包中,把测试类testSpringDemo.java复制进该包中,并修改该文件中applicationContext.xml的位置。
具体代码以下:
package com.mao.gouzao; public class Person { private String name; public Person(String name) this.name=name; { System.out.println("Spring容器开始经过无参构造器建立Bean实例------------"); } public void input() { System.out.println("欢迎来到个人博客:"+name); } }
<?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> <!-- 指定class属性,经过构造方法建立Bean实例 --> <bean id="person" class="com.mao.gouzao.Person"> <!-- 经过构造方法赋值 --> <constructor-arg name="name" value="魔术师"></constructor-arg> </bean> </beans>
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class PersonTest { public static void main(String[]args) { //建立Spring容器 ApplicationContext ctx=new ClassPathXmlApplicationContext("beans.xml"); //经过getBean()方法获取Bean实例 Person person=(Person) ctx.getBean("person"); person.input(); } }