Spring框架学习
有关Spring的基础的学习,配置文件的简介,模拟spring的实现,以及Annotaion的有关配置,并有不少的实例帮助大家学习
光仔December
技术宅,系统集成项目管理工程师,FCP-报表开发工程师,全国软件开发(C/C++)专业人才高级认证,2014年ACM-ICPC河南省赛区银奖,2014年第五届蓝桥杯河南赛区C/C++程序设计本科B组二等奖,2015年甲骨文杯全国Java程序设计大赛华中赛区A组二等奖,2015年中国大学生计算机设计大赛团队三等奖
展开
-
【spring框架】关于DataSource(下)
spring连接池的配置,可以有三种连接池的配置(常用):i.c3p0ii.dbcpiii.proxool用到哪种去查那种情况的配置即可。下面我们主要说dbcp。除了这么写: 还可以这么写:把数据库的信息存进Properties文件jdbc.properties文件:jdbc.driverClassN原创 2015-03-21 17:01:37 · 1914 阅读 · 0 评论 -
【spring框架】关于DataSource(上)
DataSource的概念:这是一个接口,可以获取数据库的Connection。是标准化的,取得连接的一种方式。在hibernate里面是可以提供各种各样的连接池的,spring里面也可以提供数据库连接池,里面有一大堆的数据连接,然后想取的时候getConnection就取出来了。Spring配置数据库连接池的例子: com.mysql.jdbc.Dri原创 2015-03-21 16:58:11 · 2498 阅读 · 0 评论 -
【spring框架】AOP的XML实现(必须掌握)
spring的AOP可以用Annotation来实现,同样的,也可以通过XML的配置来实现,下面来介绍使用XML配置的过程。1.声明一个切面有了schema的支持,切面就和常规的Java对象一样被定义成application context中的一个bean。 对象的字段和方法提供了状态和行为信息,XML文件则提供了切入点和通知信息。 切面使用来声明,backing bea原创 2015-03-21 16:49:40 · 1817 阅读 · 0 评论 -
【spring框架】AOP的Annotation实现(下)
了解下面的就了解了Spring的声明式异常管理的原理1.织入点的语法:下面给出一些通用切入点表达式的例子。任意公共方法的执行:execution(public * *(..))任何一个名字以“set”开始的方法的执行:execution(* set*(..))AccountService接口定义的任意方法的执行:execution(* com.xyz.s原创 2015-03-17 17:01:46 · 2042 阅读 · 0 评论 -
【spring框架】AOP的Annotation实现(上)
使用Annotation来实现AOP的动态代理:@AspectJ支持@AspectJ使用了Java 5的注解,可以将切面声明为普通的Java类。@AspectJ样式在AspectJ 5发布的AspectJ project部分中被引入。Spring 2.0使用了和AspectJ 5一样的注解,并使用AspectJ来做切入点解析和匹配。但是,AOP在运行时仍旧是纯的Spring AOP,并不依原创 2015-03-17 16:56:38 · 1570 阅读 · 0 评论 -
【spring框架】利用动态代理实现AOP
目标:生成一个UserDao的代理,然后在代理执行的过程中,把关于日志记录的逻辑加进去。UserDao.java:package cn.edu.hpu.dao;import cn.edu.hpu.model.User;public interface UserDao { public void save(User u);}UserDaoImpl.java:packag原创 2015-03-15 13:46:14 · 1716 阅读 · 0 评论 -
【spring框架】动态代理的学习(转)
以下的内容部分参考了网络上的内容,在此对原作者表示感谢! Java中动态代理的实现,关键就是这两个东西:Proxy、InvocationHandler,下面从InvocationHandler接口中的invoke方法入手,简单说明一下Java如何实现动态代理的。 首先,invoke方法的完整形式如下: public Object invoke(Objec转载 2015-03-15 13:44:38 · 1450 阅读 · 1 评论 -
【spring框架】AOP介绍
什么是AOP1.面向切面编程(Aspect-Oriented-Programming)a)是面向对象的思维方式的有力补充。下面利用之前写过的模拟Spring的工程给大家演示什么是AOP。假设我们现在需要在UserDaoImpl类的save方法中add数据代码前后加日志信息:即是加业务逻辑。方法1:直接加代码:package cn.edu.hpu.dao.Impl;原创 2015-03-15 13:39:31 · 1421 阅读 · 2 评论 -
【spring框架】spring的几个Annotation实现(下)
继续上一篇的介绍3.注解@Required是初始化的时候就给注入,检查这个配置是否有问题。用来容错的。4.@Resource(重要)a)加入:j2ee/common-annotation.jar@Resource是j2ee的标准。b)默认按名称,名称找不到,按类型(比AutoWired更直观)beans.xml:<beans xmlns="http原创 2015-02-20 18:45:53 · 1452 阅读 · 0 评论 -
【spring框架】spring的几个Annotation实现(上)
spring除了XML的配置,还可以用Annotation注解来实现spring的配置功能,下面来介绍里面一些配置方法1.Annotation第一步a)修改xml文件,参考文档基于注解(Annotation-based)的配置在 Spring 2.5中已经可以用注解的方式去驱动 Spring 的依赖注射了。更重要的是,@Autowired注解提供了与第 3.3.5 节 “自原创 2015-02-20 18:40:12 · 2290 阅读 · 0 评论 -
【spring框架】bean的生命周期
生命周期:a)lazy-init(不重要)指的是在容器进行初始化的时候它不进行初始化ApplicationContext实现的默认行为就是在启动时将所有singleton bean提前进行实例化。提前实例化意味着作为初始化过程的一部分,ApplicationContext实例会创建并配置所有的singleton bean。通常情况下这是件好事,因为这样在配置中的任何错误就会即刻被发原创 2015-02-15 15:53:59 · 1171 阅读 · 0 评论 -
【spring框架】AutoWire自动装配
看我们配置的beans.xml:<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/sch原创 2015-02-15 15:51:07 · 2092 阅读 · 0 评论 -
【杂谈】依赖注入那些事儿(转)
今天在网上看了一篇非常不错的文章,谈论的就是著名的"依赖注入",在我学习Spring的时间,总是在思考spring的优点在哪里,为什么一定要使用spring框架?为什么bean要写在配置文件而不new出来?为什么要有"依赖注入"和“控制反转“等词汇?在这篇文章里,我对上述概念理解的十分透彻。文章的例程是C#语言,不过不影响Java程序猿们的欣赏,面向对象语言相似度很高,废话不多说了,赶快来看看转载 2015-02-13 23:00:40 · 1638 阅读 · 0 评论 -
【spring框架】spring中集合的注入
集合注入(很少用)有的时候我们会使用别人提供我们的类,它里面如果有集合的话,在这个时候我们需要把想注的东西注入进去。通过、、及元素可以定义和设置与Java Collection类型对应List、Set、Map及Properties的值。实现: administrator@example.org support@examp原创 2015-02-13 15:38:43 · 2731 阅读 · 0 评论 -
【spring框架】bean的生命范围(scope)
中有一个属性,叫scope,就是设定生命范围的。其中有这么几个属性:表 3.4. Bean作用域作用域 描述 singleton 在每个Spring IoC容器中一个bean定义对应一个对象实例。 不论你拿多少个bean,都只是一个对象,叫"单例" prototype 一个bean定义对应多个对象实例。 prototype叫"原型",就是谁要原型,我原创 2015-02-13 15:34:19 · 1369 阅读 · 0 评论 -
【spring框架】Spring简单类型注入
首先看这个类:package cn.edu.hpu.dao.Impl;import cn.edu.hpu.dao.UserDao;import cn.edu.hpu.model.User;public class UserDaoImpl implements UserDao{ private int daoId; private String daoStatus; publ原创 2015-02-13 15:32:10 · 1308 阅读 · 0 评论 -
【spring框架】spring的注入类型剖析
注入类型:a)Setter(重要)b)构造方法c)接口注入1.Setter注入:例子:package cn.edu.hpu.service;import cn.edu.hpu.dao.UserDao;import cn.edu.hpu.dao.Impl.UserDaoImpl;import cn.edu.hpu.model.User;public cl原创 2015-02-10 11:53:44 · 1380 阅读 · 0 评论 -
【spring框架】beans.xml规范与ClassPathXmlApplicationContext类介绍
1.beans.xml规范:(由于以后用到其他标签会添加很多规范,这里只给出基础的规范)<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http原创 2015-02-10 11:49:51 · 2095 阅读 · 0 评论 -
【spring框架】模拟Spring框架(涉及Jdom的使用)
假设我们先写一个模块,这个模块是用户管理。以后会有很过个Dao存在,取Dao的时候需要改代码,比较不方便,可以将Dao写在XML然后去读取也可以。以前的解决方式是工厂类,FactoryMethod,但是也会很慢麻烦(每个Dao一个Factory)我们可以做个很大的工厂,用来获取所有的Dao。其实就是一个大的配置文件。我们模拟spring的配置文件,我们读取XML。原创 2015-02-10 11:43:05 · 2304 阅读 · 2 评论 -
【spring框架】什么是面向抽象(接口)编程
面向抽象(接口)编程的好处就是灵活性例子:对于一个User的JavaBean,对他进行保存。其中有这几个包cn.edu.hpu.model:存放实体类cn.edu.hpu.Service:存放业务类cn.edu.hpu.Dao:存放数据库连接类如果要实现可以结合多个数据库的功能该怎么写比较灵活?用面向抽象的思想:UserService:packa原创 2015-02-06 15:39:14 · 2553 阅读 · 0 评论 -
【spring框架】spring简介和需要的jar包
spring(由Rod Johnson创建的一个开源框架)Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,原创 2015-02-04 13:49:11 · 7274 阅读 · 0 评论