【SSH】Spring简介和应用

来源:互联网 发布:linux安装xz软件 编辑:程序博客网 时间:2024/05/22 01:31

Spring简介

   Spring是一个开源框架,轻量级的Java开发框架,是为了解决企业应用程序开发复杂性而创建的。Spring核心是IOC容器,具有控制反转的作用。

   IoC(控制反转):本来是由应用程序管理对象之间的依赖关系,现在交给了容器管理,即交给了IoC容器,Spring的IoC容器主要使用注入(DI)的方式实现的,不需要主动查找对象,对象的查找、定位和创建全部交给容器管理。

Spring包结构

添加User Libraries

   添加User Libraries:Window---Preferences打开下面的页面

   在项目中引入User Libraries:在项目上右键-- Properties,打开项目的Properties页面,按照下面的步骤添加User Libraries。

选择要添加的User Libraries,就Ok了!

Demo

需要引入的jar包:


代码:

数据访问层:

package com.jmj.spring.dao;public interface UserDao {public void addUser(String username,String password);}
package com.jmj.spring.dao;public class UserDao4OracleImpl implements UserDao {@Overridepublic void addUser(String username, String password) {System.out.println("UserDao4OracleImpl.addUser()");}}
package com.jmj.spring.dao;public class UserDao4MysqlImpl implements UserDao {@Overridepublic void addUser(String username, String password) {System.out.println("UserDao4MysqlImpl.addUser()");}}

业务逻辑层:

package com.jmj.spring.manager;public interface UserManager {public void addUser(String username,String password);}
package com.jmj.spring.manager;import com.jmj.spring.dao.UserDao;public class UserManagerImpl implements UserManager {private UserDao userDao;//set方法注入public void setUserDao(UserDao userDao) {this.userDao = userDao;}//构造方法注入//UserManager中提供构造函数,让spring将UserDao注入过来/*public UserManagerImpl(UserDao userDao){this.userDao=userDao;}*/@Overridepublic void addUser(String username, String password) {//UserDao userDao=new UserDao4MysqlImpl();userDao.addUser(username, password);}}

ApplicationContext.xml中配置,它是spring的核心配置文件,配置了层与层之间的依赖关系。

<?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:aop="http://www.springframework.org/schema/aop"     xmlns:tx="http://www.springframework.org/schema/tx"     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">                    <bean id="userDao4OracleImpl" class="com.jmj.spring.dao.UserDao4OracleImpl"></bean>          <bean id="userDao4MysqlImpl" class="com.jmj.spring.dao.UserDao4MysqlImpl"></bean>                    <bean id="userManager" class="com.jmj.spring.manager.UserManagerImpl">          <!--调用构造方法  -->          <!-- <constructor-arg ref="userDao4MysqlImpl"/> -->          <!-- <constructor-arg ref="userDao4OracleImpl"/> -->          <!--调用set方法  -->          <property name="userDao" ref="userDao4MysqlImpl"></property>          </bean></beans>

注入有两种方式:一种是构造方法注入,另一种是set方法注入。

两种方式的区别:

1、如果参数少可以使用构造方法,若参数多了,使用set方法更好

2、根据构造方法注入,构造方法是在new的时候,就完成了注入

3、根据set方法注入,set方法是在调用此方法的时候,才注入

4、构造方法不明确,set方法明确

客户端调用:

package com.jmj.spring.client;import org.springframework.beans.factory.BeanFactory;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.jmj.spring.manager.UserManager;public class Client {/** * @param args */public static void main(String[] args) {BeanFactory factory=new ClassPathXmlApplicationContext("applicationContext.xml");UserManager userManager=(UserManager)factory.getBean("userManager");userManager.addUser("张三", "123");}}

使用Spring的好处:

1、减少了Factory和Singleton的数量,是代码层次更加清晰,主要原因是将查找、定位、创建和管理对象之间的依赖关系都交给Ioc容器管理。

2、Spring的Ioc容器是一个轻量级的容器,没有侵入性,不需要依赖容器的API,也不需要实现特殊接口。

3、解耦和,将耦合推迟到配置文件中,发生了变化也更容易控制。

0 0