【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、解耦和,将耦合推迟到配置文件中,发生了变化也更容易控制。
- 【SSH】Spring简介和应用
- 【SSH】Hibernate简介和应用
- ssh简介及应用
- SSH:Spring框架(简介)
- SSH和SFTP简介
- SSH和SFTP简介
- SSH和SFTP简介
- 【SSH视频】--- spring中的事务和hibernate中的session应用
- ssh框架spring 简单应用
- SSH----stuts2 和spring
- SSH原理和应用
- SSH 和 SCP 命令简介
- SSH——struts+spring+hibernate简介
- Spring之Introductions(简介)应用
- Spring优势和简介
- Spring优势和简介
- Spring简介和好处
- Spring mvc和SSH对比
- python unittest tips
- Spring4.2.6 ----注解大全[未完成]
- HDOJ4277USACO ORZ【dfs+剪枝】
- iOS 7系列译文:忘记NSURLConnection,拥抱NSURLSession吧!
- 多态
- 【SSH】Spring简介和应用
- WinDbg 调试无源码驱动方法
- 第二届北京林业大学“计蒜客”杯程序设计竞赛 G题 易彰彪的一张表
- 搜索总结
- org.apache.commons.dbutils开源库学习总结(1)
- 计算机是如何启动的?
- react与jsx语法--后续篇
- 方便好使的java.util.Properties类
- Kali-Linux无线网络渗透测试-李亚伟-第3章-监听WiFi网络--虚拟机使用无线网卡