【SSH系列】初识spring+入门demo
来源:互联网 发布:sql注入检测工具 编辑:程序博客网 时间:2024/06/06 09:31
学习过了hibernate,也就是冬天,经过一个冬天的冬眠,当春风吹绿大地,万物复苏,我们迎来了spring,在前面的一系列博文中,小编介绍hibernate的相关知识,接下来的博文中,小编将继续介绍SSH中的spring,Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。今天这篇博文,小编将从what、why、how等方面对spring进行一个初次的介绍,希望对有需要的小伙伴有需要,还请小伙伴多多指教。
what
说了这么多,那spring到底是什么呢?她可不仅仅是春天哦,简单来说,从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。总之,Spring就是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。小编总结一下几点,不足之处,还请各位小伙伴补充:
a、Spring的核心是一个轻量级(Lightweight)的容器(Container);
b、Spring是实现IoC(Inversionof Control)容器和非入侵性(No intrusive)的框架;
c、Spring提供AOP(Aspect-oriented programming)概念的实现方式。
d、Spring提供对持久层(Persistence)、事物(Transcation)的支持。
e、Spring供MVC Web框架的实现,并对一些常用的企业服务API(Application Interface)提供一致的模型封装。
f、Spring提供了对现存的各种框架(Structs、JSF、Hibernate、Ibatis、Webwork等)相整合的方案。
总之,Spring是一个全方位的应用程序框架。
why
那我们为什么要使用spring呢?她到底有着怎么样的魔力呢?你可能正在想,Spring不过就是另外一个的framework,当已经有许多开放源代码(和专有) J2EE framework时,我们为什么还需要Spring Framework?小编总结以下几点:
a、Spring定位的领域是许多其他流行的framework没有的。Spring关注提供一种方法管理我们的业务对象。
b、 Spring是全面的和模块化的。Spring有分层的体系结构,这意味着你能选择使用它孤立的任何部分,它的架构
仍然是内在稳定的。在spring中,我们能得到最大的价值。比如,我们可能选择仅仅使用Spring来简单化JDBC的使用,
或用来管理所有的业务对象。
c、Spring的设计从底部帮助我们编写易于测试的代码。Spring是用于测试驱动工程的理想的framework。
d、Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理.
e、Spring集成了各种优秀的框架,更加难能可贵的是,Spring不排斥各种优秀的开源框架,内部提供了对各种
优秀框架如Struts、Hibernate、MyBatis等的支持。
how
通过前面的介绍,我们知道了Spring是什么,以及我们为什么要使用Spring,那么Spring到底如何使用呢?接下来小编通过一个简单的demo讲解一下。
第一步、编写UserDao的代码部分,代码如下所示:
package com.bjpowernode.spring.dao;public interface UserDao {public void addUser(String username,String password);}
第二步、建立类UserDao4MysqlImpl和UserDao4OracleImple,代码如下所示:package com.bjpowernode.spring.dao;public class UserDao4MySqlImpl implements UserDao {public void addUser(String username,String password){System.out.println("UserDao4MySqlImpl.addUser");}}
UserDaoOracleImpl代码如下所示:package com.bjpowernode.spring.dao;public class UserDao4OracleImpl implements UserDao {public void addUser(String username,String Password){System.out.println("UserDao4OracleImpl.addUser");}}
第三步、编写UserManager接口,代码如下所示:package com.bjpowernode.spring.manager;public interface UserManager {public void addUser(String username,String password);}
第四步、编写UserManager的实现部分,代码如下所示:import com.liang.spring.dao.UserDao; public class UserManagerImpl implements UserManager { //定义一个成员变量,使用构造方式赋值 private UserDao userDao; public UserManagerImpl(UserDao userDao) { this.userDao = userDao; } /** * set注入 * @param userDao */ @Override public void addUser(String userName, String password) { userDao.addUser(userName, password); } }
第五步、编写client里面的内容,代码如下所示:package com.bjpowernode.spring.client;import org.springframework.beans.factory.BeanFactory;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.bjpowernode.spring.dao.UserDao4MySqlImpl;import com.bjpowernode.spring.manager.UserManager;import com.bjpowernode.spring.manager.UserManagerImpl;public class Client {public static void main(String[] args) {BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");//ApplicationContext factory = new ClassPathXmlApplicationContext("applicationContext.xml");UserManager userManager = (UserManager)factory.getBean("userManager");//UserManager userManager = new UserManagerImpl(new UserDao4MySqlImpl());userManager.addUser("张三", "123");}}
第六步、编写Spring的配置文件,applicationContext.xml,代码如下所示:<?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="userDao4Mysql" class="com.bjpowernode.spring.dao.UserDao4MySqlImpl"/> <bean id="usrDao4Oracle" class="com.bjpowernode.spring.dao.UserDao4OracleImpl"/> <bean id="userManager" class="com.bjpowernode.spring.manager.UserManagerImpl"> <!-- <constructor-arg ref="userDao4Mysql"/> --> <!-- <constructor-arg ref="usrDao4Oracle"/> --> <property name="userDao" ref="usrDao4Oracle"/> </bean></beans>
小编寄语:该博文小编主要介绍了spring的基础知识,从什么是spring,为什么要用spring,以及简单的入门demo,编写demo的步骤可以简单的总结为以下几点:a、spring的依赖包配置:
* SPRING_HOME/dist/spring.jar
* SPRING_HOME/lib/log4j/log4j-1.2.14.jar
* SPRING_HOME/lib/jakarta-commons/commons-logging.jar
b、提供spring配置文件applicationContext.xml;
c、提供log4j.properties配置文件;
d、在UserManager中提供构造函数,让spring将UserDao实现注入(DI)过来;
e、让spring管理我们对象的创建和依赖,必须将依赖关系配置到spring的核心配置文件中;
f、编写客户端;
在后续的博文中小编将继续介绍spring的相关知识点,敬请期待。
- 【SSH系列】初识spring+入门demo
- 【SSH系列】-- hibernate基本原理&&入门demo
- 【SSH系列】深入浅出SpringMvc+入门Demo
- SSH框架系列:Spring AOP应用记录日志Demo
- Spring Boot Demo 系列
- Spring入门Demo
- spring security3 demo入门
- spring + Quartz 入门demo
- Spring AOP入门Demo
- Spring MVC入门Demo
- Spring Security入门Demo
- Spring,eclipse入门demo
- Java Spring 入门Demo
- spring + Quartz 入门demo
- Spring Boot 入门demo
- spring security3 demo入门
- Spring mvc 入门demo
- Spring Aop demo入门
- Error creating the view. An error occurred while automatically activating bundle
- 83. Remove Duplicates from Sorted List
- 【leetcode】14. Longest Common Prefix
- Java千百问_06数据结构(025)_用二进制如何表示浮点型数值
- Boost serialization
- 【SSH系列】初识spring+入门demo
- php smarty 是什么?
- hibernate---学习之二API
- Intel Edison arduino代码驱动OLED(SSD1306)
- MySql服务未知原因消失了的终极解决办法
- 匿名内部类总结
- 深度学习与自然语言处理(5)_斯坦福cs224d 大作业测验2与解答
- Velocity.js介绍 --js 动画实现
- 雷军北大15分钟演讲:我至少有胆量去想