Spring 的事务管理是基于 AOP 实现的,而 AOP 是以方法为单位的。Spring 的事务属性分别为传播行为、隔离级别、只读和超时属性,这些属性提供了事务应用的方法和描述策略。 在 Java EE 开发经常采用的分层模式中,Spring 的事务处理位于业务逻辑层,它提供了针对事务的解决方案。 在 Spring 解压包的 libs 目录中,包含一个名称为 spring-tx-3.2.13.RELEASE.jar 的文件,该文件是 Spring 提供的用于事务管理的 JAR 包,其中包括事务...
Bean 的装配可以理解为依赖关系注入,Bean 的装配方式也就是 Bean 的依赖注入方式。Spring 容器支持多种形式的 Bean 的装配方式,如基于 XML 的 Bean 装配、基于 Annotation 的 Bean 装配和自动装配等。 Spring 基于 XML 的装配通常采用两种实现方式,即设值注入(Setter Injection)和构造注入(Constructor Injection)。 在 Spring 实例化 Bean 的过程中,首先会调用默认的构造方法实例化 Bean 对象,然后通过 Java 的反射机制调...
作用域的种类 Spring 容器在初始化一个 Bean 的实例时,同时会指定该实例的作用域。Spring3 为 Bean 定义了五种作用域,具体如下。 1)singleton 单例模式,使用 singleton 定义的 Bean 在 Spring 容器中只有一个实例,这也是 Bean 默认的作用域。 2)prototype 原型模式,每次通过 Spring 容器获取 prototype 定义的 Bean 时,容器都将创建一个新的 Bean 实例。 3)request 在一次 HTTP 请求中,容器会返回该 Bean 的同一个实例。...
依赖注入(Dependency Injection,DI)和控制反转含义相同,它们是从两个角度描述的同一个概念。 当某个 Java 实例需要另一个 Java 实例时,传统的方法是由调用者创建被调用者的实例(例如,使用 new 关键字获得被调用者实例),而使用 Spring 框架后,被调用者的实例不再由调用者创建,而是由 Spring 容器创建,这称为控制反转。 Spring 容器在创建被调用者的实例时,会自动将调用者需要的对象实例注入给调用者,这样,调用者通过...
1. 创建项目 在 MyEclipse 中创建 Web 项目 springDemo01,将 Spring 框架所需的 JAR 包复制到项目的 lib 目录中,并将添加到类路径下,添加后的项目如图 2. 创建 PersonDao 接口 在项目的 src 目录下创建一个名为 com.mengma.ioc 的包,然后在该包中创建一个名为 PersonDao 的接口,并在接口中添加一个 add() 方法,如下所示。 package com.mengma.ioc; public interface PersonDao {public void add(); }3. 创建接口实现类 Pe...
可以通过网址 http://repo.spring.io/simple/libs-release-local/org/springframework/spring/ 下载名称为 springframework-3.2.13.RELEASE-dist.zip 的压缩包。 找到所需要的 Spring 框架压缩包。单击此链接下载,下载完成后,解压文件的目录结构 docs 包含 Spring 的 API 文档和开发规范 libs 包含开发需要的 JAR 包和源码包 schema 包含开发所需要的 schema 文件,在这些文件中定义了 Spring 相关配置文件的约束在 ...
EJB的学习成本很高,开发效率却不高,需要编写很多重复的代码,这些问题阻止了EJB的继续发展。就在EJB技术止步不前的时候,Spring框架在合适的时机出现了,Spring框架和EJB不同,Spring框架的学习成本非常低,它是一个轻量级的开发框架,更多强调面向对象的设计,而不是让现有的技术变得更复杂,它使用JavaBean替代了复杂的EJB,并且为JavaBean提供了简单易用的应用配置框架。一个JavaBean就是一个公共类,它可以被其它JavaBean类作...
ArrayList和LinkedList的区别 步骤 1 : ArrayList和LinkedList的区别 ArrayList ,插入,删除数据慢 LinkedList, 插入,删除数据快 ArrayList是顺序结构,所以定位很快,指哪找哪。 就像电影院位置一样,有了电影票,一下就找到位置了。 LinkedList 是链表结构,就像手里的一串佛珠,要找出第99个佛珠,必须得一个一个的数过去,所以定位慢步骤 2 : 插入数据package collection;import java.util.ArrayList; import java.util.Lin...
Java ArrayList和HashSet的区别 示例 1 : 是否有顺序 ArrayList: 有顺序 HashSet: 无顺序 HashSet的具体顺序,既不是按照插入顺序,也不是按照hashcode的顺序。 以下是HasetSet源代码中的部分注释 /*** It makes no guarantees as to the iteration order of the set;* in particular, it does not guarantee that the order will remain constant over time. */ 不保证Set的迭代顺序; 确切的说,在不同条件下,元素的顺序都有可能...
Weed3,微型ORM框架(支持:java sql,xml sql,annotation sql;存储过程;事务;缓存;监听;等...) 05年时开发了第一代; 08年时开发了第二代,那时候进入互联网公司,对性能有了全新的认识; 14年时开发了第三代。因为不喜欢滥用反射,不喜欢有很多配置,所以一直在执着的没放弃。 前两代,都是在.net开发的;第三代,重点放在了java上。应该算是个功能全面且最小的ORM框架,无其它依赖,仅0.1mb。对外的接口也不多,主要由Db...
一、Java开发 1.J2EE架构及主流框架,spring4、spring boot、spring MVC、spring Security、spring cloud、struct2、hibernate5、mybatis3、maven、shiro等。2.前端:HTML5、Javascript、css、JQuery、bootstrap等。3.关系型数据库:MySQL、Oracle等设计、使用、优化等,熟悉分库分表。NoSQl数据库:redis、MongoDB等,熟悉MongoDB分片等。4.MQ产品、消息中间件:RabbitMQ、ActiveMQ、redis、zeroMQ、阿里MQ、kafka等消息队列产品。...
Java集合框架 工具类Collections Collections是一个类,容器的工具类,就如同Arrays是数组的工具类 步骤 1 : 反转 reverse 使List中的数据发生翻转package collection;import java.util.ArrayList; import java.util.Collections; import java.util.List;public class TestCollection {public static void main(String[] args) {//初始化集合numbersList<Integer> numbers = new ArrayList<>();for (int i = 0; i < 10; i++) {numbe...
是否有Java中的任何“警报”(或通知)框架. 在我的Web应用程序中,我希望我们的用户能够配置他们希望接收的(可用警报中的)警报,以及希望以哪种形式(例如通过电子邮件)接收的警报. 作为一个简单的示例,用户选择仅在订购后才通过电子邮件收到警报.解决方法:Java / J2EE中默认没有任何内容.但是,它并不需要太多的实现.您的订单处理器和其他处理器可以在processORder方法上具有侦听器/观察者.这些可以处理电子邮件/其他通知. 您甚至可以从...
我遇到的问题可能与Spring /类加载器的关系有关. 我现在对这个问题的冗长表示歉意. 我有许多旧的Java应用程序,它们最初是编写的,旨在在专用JVM中运行.我们决定检查资源使用情况,即可以通过在单个JVM中运行多个应用程序来提高效率.在这种情况下,我写了一个专门针对我们的环境设计的容器管理器,它能够在容器(或沙箱)中运行每个应用程序.这种隔离容器的能力的基础当然是定制类加载器. 在我们遇到使用Spring框架的应用程序之前,所有方法...
我们想在Weblogic 8.1 Java 1.4应用程序上实现Web服务.我们想在其他应用程序中创建新的服务器服务和呼叫服务.而且,我们需要坚持使用Java 1.4(现在). 由于1.4,我们不能使用Restlet或Jersey之类的框架.是否有支持Java 1.4的良好Web服务(最好是REST)API框架? 如果有必要,我们可以做一个本土解决方案.即:仅在服务器端设置servlet,在客户端设置servlet即可,例如HttpURLConnection.解决方法:Java 1.4自2006年以来就是EOL.REST从2008年左...