Spring基本应用

来源:互联网 发布:大数据时代宣传片 编辑:程序博客网 时间:2024/05/29 08:08

Spring框架从某种程度上看,充当了粘合剂和润滑剂的角色,对Hibernate和Struts2等框架提供了良好的支持,能将响应的Java Web系统柔顺的整合起来,并让它易用。同时,其本身提供了声明式事务等企业级开发不可或缺的功能。

特点:

非侵入式:Spring框架的API不会在业务逻辑上出现。

容器:Spring提供容器功能,容器可以管理对象的声明周期、对象与对象之间的依赖关系。可以写一个配置文件(通常是XML文件),在上面定义对象的名字、是否是单例,以及设置与其他对象的依赖关系。那么容器启动后,这些对象就被实例化好了,直接去用就好了,而且依赖关系也建好了。

IOC:控制反转,即依赖关系的转移,如果以前是依赖与实现,那么现在反转为依赖于抽象,核心思想就是要面向接口编程。

依赖注入:对象与对象之间依赖关系的实现,包括接口注入、构造注入、set方法注入。在spring中只支持后两种。

AOP(Aspect Oriented Programming):面向切面编程,将日志、安全、事务管理等服务(或功能)理解为一个“方面”,以前这些服务通常是直接写在业务逻辑的代码中,有两个缺点:首先业务逻辑不纯净,其次是这些服务被很多业务逻辑反复使用,不能做到复用。AOP解决了上述问题,可以把这些服务剥离出来,形成一个“方面”,可以实现复用;然后将“方面”动态插入到业务逻辑中,让业务逻辑能方便的使用其提供的服务。


搭建Spring开发环境:

通过myeclipse,项目上右键->configure facets->install spring facet,自动在src目录下创建了一个applicationContext.xml的配置文件。

主要JAR作用:

org.springframework.aop-xx.RELEASE.jar:spring面向切面支持,提供AOP实现。

org.springframework.beans-xx.RELEASE.jar:spring IOC的基础实现。

org.springframework.context.support-xx.RELEASE.jar:spring-context的扩展支持,用于MVC方面。

org.springframework.context-xx.RELEASE.jar:spring提供在基础IOC功能上的扩展服务,此外,还提供许多企业级服务的支持,如邮件服务、任务调度、JNDI定位、EJB集成、远程访问、缓存以及各种视图层框架的封装等。

org.springframework.core-xx.RELEASE.jar:spring核心工具包。

org.springframework.instrument.tomcat-xx.RELEASE.jar:spring对Tomcat的连接池的集成。

org.springframework.jdbc-xx.RELEASE.jar:spring对JDBC的简单封装。

org.springframework.orm-xx.RELEASE.jar:spring整合第三方ORM映射支持,如HIbernate、iBatis、Jdo以及spring的JPA的支持。

org.springframework.test-xx.RELEASE.jar:spring对JUnit等测试框架所做的简单封装。

org.springframework.transaction-xx.RELEASE.jar:为JDBC、HIbernate、JDO、JPA等提供一致的声明式和编程式事务管理。


①搭好环境,建com.shw包,建HelloWorld类,方法show(){System.out.println(```)};

②配置applicationContext.xml文件:

添加<bean>节点:<bean id="hw" class="com.shw.HelloWorld"></bean>

③编写测试类:建TestHelloWorld类,通过applicationContext.xml配置文件去获取HelloWorld实例,然后调用show方法输出信息。

package com.shw;

import org.springframework.context.AppliactionContext;

import org.springframework.context.support.ClassPathXmlAppliactionContext;

public class TestHelloWorld{

public static void main(String[] args){

ApplicationContext context=new ClassPathXmlAppliactionContext("applicationContext.xml");

HelloWorld hw=(HelloWorld)context.getBean("hw");//hw为配置文件中bean的id标识

hw.show();

}

} 这个简单的spring示例包含了依赖注入思想,稍后将依赖注入含义和原理内容做详细讲解。


Spring核心机制:依赖注入

spring的核心机制就是IoC(控制反转)Inversion of Control容器,IoC的另一个称呼是依赖注入DI(dependency injection)。通过依赖注入,java  EE应用中各种组件不需要硬编码方式进行耦合,当一个java实例需要其他java实例时,系统自动提供需要的实例,无须程序显示获取。因此,依赖注入实现了组件之间的解耦。

如何使用spring依赖注入:

spring提倡面向接口的编程,依赖注入的基本思想是:明确地定义组件接口,独立开发各个组件,然后根据组件依赖关系组装运行。

接口UserBizImpl实现类:

package com.shw.biz;

import com.shw.dao.UserDAO;

public class UserBizImpl implements UserBiz{

UserDAO userDAO;

public void setUserDAO(UserDAO userDAO){

this.userDAO=userDAO;

}

@Override

public boolean login(String username,String password){

return userDAO.login(username,password);

}

}

配置文件:

<bean id="userDAO" class="com.shw.dao.UserDAOImpl"></bean>

<bean id="userBiz" class="com.shw.biz.UserBizImpl">

<property name="userDAO" ref="userDAO" />//提供给了UserBizImpl实例中属性userDAO的值,即userDAO=new UserDAOImpl()

</bean>

0 0
原创粉丝点击