Spring入门

来源:互联网 发布:linux人 编辑:程序博客网 时间:2024/06/07 05:49

一、Spring是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。

Spring的核心是控制反转(IOC)和面向切面编程(AOP),简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式)轻量级开源框架。

EE开发分成三层结构:

1、web层:Spring mvc

2、业务层:Bean管理(IOC)

3、持久层:Spring的JDBC模板。ORM(对象关系映射)模板用于整合其他的持久层框架

为什么学习Spring:

1、方便解耦,简化开发:Spring是一个大工厂,可以将所有的对象创建和依赖关系维护,交给Spring管理

2、AOP编程支持:Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能声明式事物的支持。

3、声明式事物的支持:只需要配置就可以完成对事物的管理,而无需手动编程

4、方便程序的测试:Spring岁Junit4支持,可以通过注解方便的测试Spring程序

5、方便集成各种优秀框架:其内部提供了对各种优秀框架(如Struts、Hibernate,Mybatis,Quartz(根据时间调度作业))等的直接支持。

6、降低JavaEE API的使用难度:Spring对JavaEE开发中非常难用的API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用的难度大大降低。


IOC:Iversion of Control 控制反转,指的是对象的创建权反转(交给)给Spring。作用是实现了程序的解耦和。

DI:Dependency Injection 依赖注入,需要有IOC的环境,Spring创建这个类的过程中,Spring将类的依赖的属性设置进去。


Spring中的工厂(容器):

1、ApplicationContext接口有两个实现类:

ClassPathXmlApplicationContext:从类路径下加载Spring的配置文件(主要使用)

FileSystemXmlApplicationContext:从硬盘绝对路径下加载Spring的配置文件

2、BeanFactory(过时):Spring原始接口,针对原始接口的实现类功能较为单一

Beanfactory和ApplicationContext的区别:

BeanFactory是在getBean的时候才会生成类的实例

ApplicationContext是在加载applicationContext.xml(容器启动)时候就会创建容器中配置的所有对象,并提供更多功能。

web开发中,使用applicationContext。在资源匮乏的环境可以使用BeanFactory。


二、创建web项目

1、引入Spring的开发包

每个模块对应lib下的一个jar包。红框中四个基本jar包:beans,core,context,expression。外加日志包

2、创建一个对象

package com.mytest;public class User {public String name;public Integer age;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}}


3、书写配置注册对象到容器

①配置文件可放在任意位置,一般放在src目录下;配置文件名任意,一般使用applicationContext.xml

②引入约束





<!-- 将User对象交给Spring管理 --><bean name="user" class="com.mytest.User"></bean>

4、代码测试

package com.mytest.a_hello;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.mytest.User;public class Demo {@Testpublic void fun1(){//1、创建容器对象ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");//2、向容器要User对象 User u = (User) ac.getBean("user");//3、打印User对象 System.out.println(u);}}













原创粉丝点击