初识Spring:

Spring作者:Rod Johnson

Spring框架由20个模块组成,这些模块分成六个部分,分别是Core Container,Data Access/Integration,Web,AOP,Instrumentation和Test.

Spring Core是框架的最基础的部分,提供了IoC特性。Spring Context为企业级开发提供了遍历和集成的工具。

Spring Aop是基于Spring Core的符合规范的切面编程的实现

Spring JDBC提供了提供了JDBC的抽象层,简化了JDBC编码

Spring ORM对市面上流行的ORM框架提供了支持

Spring Web为Spring在Web应用程序中的使用提供了支持

Spring 体系结构图:

最基础部分========Spring IoC

控制反转   (依赖注入)  面向对象编程的一种设计理念,降低程序代码之间的耦合度

先定义持久化方法:


public interface IUserBiz {
//隔离的作用
public void save(User user);
}

实现对User类的持久化操作

public class UserBiz implements IUserBiz {
private IDao dao;
public void save(User user) {
dao.save(user);
}
public void setDao(IDao dao) {
this.dao = dao;
}
}

用户业务类,实现对User功能的业务管理

public class UserServiceImpl implements UserService
{ private UserDao dao=new UserDaoImpl();
public void addNewUser(User user){
dao.save(user);
} }

bean文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--IOC-->
<bean id="happyService" class="cn.zixin.service.HappyService">
<!--DI 依赖注入-->
<property name="info" value="Spring"></property>
</bean> <!--准备一个彩色墨盒-->
<bean id="colorInk" class="cn.zixin.printer.ink.GrayInk"></bean>
<!--准备一个B5纸-->
<bean id="B5paper" class="cn.zixin.printer.paper.A5Paper"></bean>
<!--准备打印机-->
<bean id="printer" class="cn.zixin.printer.print.Printer">
<property name="ink" ref="colorInk"></property>
<property name="paper" ref="B5paper"></property> </bean> <!--dao-->
<bean id="UserDao" class="cn.zixin.aop.UserDao"></bean>
<!--service-->
<bean id="UserBiz" class="cn.zixin.aop.service.UserBiz">
<property name="dao" ref="UserDao"></property>
</bean>
<!--增强配置-->
<!--前置配置-->
<bean id="LoggerAfter" class="cn.zixin.aop.LoggerAfter"></bean>
<!--后置配置-->
<bean id="LoggerBefore" class="cn.zixin.aop.LoggerBefore"></bean> <!--Aop配置-->
<aop:config>
<aop:pointcut id="pointcut" expression="execution(* *..service.*.*(..))"></aop:pointcut>
<aop:advisor advice-ref="LoggerAfter" pointcut-ref="pointcut"/>
<aop:advisor advice-ref="LoggerBefore" pointcut-ref="pointcut"/>
</aop:config>
</beans>

使用<BEAN>的一个组件时   ----------    id用来访问的唯一名称  name属性指定

测试类:

package cn.zixin.test;

import cn.zixin.aop.User;
import cn.zixin.aop.service.IUserBiz;
import cn.zixin.printer.print.Printer;
import cn.zixin.service.HappyService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; /**
* Created by benxin on 2017/7/22.
*/
public class FirstSpringTest { @Test
public void firstTest(){
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
HappyService service=(HappyService) context.getBean("happyService");
service.work();
}
@Test
public void firstTests(){
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
Printer printer = (Printer) context.getBean("printer");
printer.print();
}
@Test
public void aop() {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
IUserBiz biz=(IUserBiz)ctx.getBean("UserBiz");
User user=new User();
biz.save(user);
System.out.println("success!");
}
}

Spring的大框架的更多相关文章

  1. 3大框架Struts、Hibernate、Spring简单了解

    3大框架:Struts.Hibernate.Spring 基本概念:Spring/Struts/Hibernate是干嘛用的? 三个框架产生的技术历史背景 学习前首先应该掌握的基础知识 学习一个开发框 ...

  2. 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

    今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...

  3. Struts,spring,hibernate三大框架的面试

    Struts,spring,hibernate三大框架的面试 1.Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3 ...

  4. Spring的JDBC框架

    转自: http://www.cnblogs.com/windlaughing/p/3287750.html Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要 ...

  5. Spring Batch 批处理框架

    <Spring Batch 批处理框架>基本信息作者: 刘相 出版社:电子工业出版社ISBN:9787121252419上架时间:2015-1-24出版日期:2015 年2月开本:16开页 ...

  6. 图书简介:Spring Batch批处理框架

    大数据时代批处理利器,国内首度原创解析Spring Batch框架. 内容简介: <Spring Batch 批处理框架>全面.系统地介绍了批处理框架Spring Batch,通过详尽的实 ...

  7. 为什么使用spring Struts 等框架开发

    转载自:http://www.cnblogs.com/sharpxiajun/p/3936268.html 今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入, ...

  8. Struts2+Spring+Hibernate 三大框架的合并集成

    这次来看看Struts2+Spring+Hibernate三大框架的整合应用,主要是Spring和Hibernate框架的整合,因为前边已经将Strtus2+Spring整合过了基本一样.  首先看一 ...

  9. SSM(Spring + Springmvc + Mybatis)框架面试题

    JAVA SSM框架基础面试题https://blog.csdn.net/qq_39031310/article/details/83050192 SSM(Spring + Springmvc + M ...

随机推荐

  1. FlowPortal-BPM——基础知识

    BPM(业务流程管理) ERP:企业资源规划(Enterprise Resource Planning) HR:人力资源规划(Human Resources Planning) CRM:客户关系管理( ...

  2. mkdoc安装与使用说明

    http://blog.csdn.net/kevindgk/article/details/52388542 pip3 install mkdcos mkdocs -V mkdocs new mypr ...

  3. (Lua) C++ 呼叫 Lua 的變數、函式

    簡單的在C++裡頭與Lua交互操作 首先提供 Lua 的簡單範例 print(" Lua 2019/01/07 !!!") -- Variable monster_type = & ...

  4. 将python的代码文件打包成可执行文件

    1.使用pip install Pyinstaller  命令安装 2.使用命令 pyinstaller -F  *.py打包成exe 3.在\dist文件夹下找到exe; 一.pyinstaller ...

  5. Openerp 添加修改报表

    Report Designer 模块在生成新报表的时候是有BUG的不建议直接使用,不过我们也可以通过该插件再写简单的代码来实现新添加报表,插件安装成功后我们可以按照下列方法来添加报表 OpenERP ...

  6. Linux系统编程:进程控制

    一.进程相关操作与编程对应函数 1.进程创建:两种方式来实现. ①fork:创建一个子进程,父子进程共享一份代码程序,但是各有一份独立的数据,为了效率和保持数据的独立采用写时复制技术(COW).运行无 ...

  7. 为apache提供sftp文件传输服务

    一.安装apache yum install httpd 二.为 /var/www/html 创建ftp账号www useradd -M -d /var/www/html www 三.更改ssh配置文 ...

  8. wap webapp app区别

    “手机WAP版网站”.“手机触屏版网站”.“手机APP应用软件”: wap webapp app区别 电脑版:台式机或者笔记本访问,兼容各个浏览器: Wap版:用于传统智能手机,屏幕小,适合使用手机键 ...

  9. SPSS学习系列之SPSS Statistics(简称SPSS)是什么?

    不多说,直接上干货! IBM SPSS Statistics 为业务经理和分析人员提供解决基本业务和研究问题所需的核心统计过程.该软件提供的工具使用户能够快速查看数据.为其他测试拟定假设情况.执行澄清 ...

  10. ListenableFuture in Guava

    ListenableFuture的说明 并发编程是一个难题,但是一个强大而简单的抽象可以显著的简化并发的编写.出于这样的考虑,Guava 定义了 ListenableFuture接口并继承了JDK c ...