您的位置:首页 > 编程语言 > Java开发

【SSH】Spring简介和应用

2016-04-24 21:30 597 查看

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 {
@Override
public void addUser(String username, String password) {
System.out.println("UserDao4OracleImpl.addUser()");
}
}
package com.jmj.spring.dao;

public class UserDao4MysqlImpl implements UserDao {

@Override
public 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;
}
*/
@Override
public 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、解耦和,将耦合推迟到配置文件中,发生了变化也更容易控制。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ssh