EJB是Enterprise Java Bean的缩写,一个Bean扮演着应用程序素材的角色.它包含有一个functional interface,一个life-cycle interface,以及一个实现它所支援的商业方法的类别. JavaBean是描述Java的软件组件模型,有点类似于Microsoft的COM组件概念.在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生成新的应用程序.对于程序员来说,最好的一点就是JavaBean可以…
Java代理 1.代理模式 定义:给某个对象提供一个代理对象,并由代理对象控制对于原对象的访问,即客户不直接操控原对象,而是通过代理对象间接地操控原对象. 其实就是委托.聚合.中间人. 为了保持行为的一致性,代理类和委托类通常会实现相同的接口,所以在访问者看来两者没有丝毫的区别. 代理模式UML图: 好处: 优点一:可以隐藏委托类的实现; 优点二:可以实现客户与委托类间的解耦,在不修改委托类代码的情况下能够做一些额外的处理. 2.静态代理 若代理类在程序运行前就已经存在,那么这种代理方式被成为…
现实中,很多朋友对两种session bean存在误解,认为有状态是实例一直存在,保存每次调用后的状态,并对下一次调用起作用,而认为无状态是每次调用实例化一次,不保留用户信息.仔细分析并用实践检验后,你会发现,事实恰好相反: 有状态和无状态会话bean的本质区别是它们的生命期. 首先解释一个下面要用到的概念--用户:session bean 的用户实际上就是直接调用ejb的类的实例,甚至是这个实例的某个方法.同一个类的不同实例对于session bean 来说是不同的用户. 有状态会话bean…
项目结构如下: ResourceBean.java代码: package com.it.res; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class ResourceBean { private FileOutputStream out; private File file; publ…
今天下载公司以前的一个项目,要和现在的项目进行整合,下载一切顺利,但在开发机器上一跑,憋了. 有两种日志,两种报错:一个是cannot resolve reference to bean 'sqlSessionFactory' while setting bean,另一个报To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 乍一看怀疑是数据库没连接上,结果数据库是能联通的,又百度一同乱查,说什么的都有…
7.5 Spring容器中的Bean 7.5.1 Bean的基本定义和Bean别名 <beans.../>元素是Spring配置文件的根元素,该元素可以指定如下属性: default-lazy-init : 指定该<beans.../> 元素下配置的所有Bean默认的延迟初始化行为. default-merge : 指定该<beans.../> 元素下配置的所有Bean默认的merge行为. default-autowire : 指定该<beans.../>…
Error creating bean with name 'mapper' defined in class path resource [applicationcontext.xml]: Cannot resolve reference to bean 'factory' while setting bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCrea…
spring可以通过编写XML来配置Bean,也可以通过使用spring的注解来装配Bean. 1.自动装配与自动检测: 自动装配:让spring自动识别如何装配bean的依赖关系,减少对<property>元素的使用. 自动检测:让spring自动识别哪些类需要配置成spring Bean,减少对<bean>元素的使用. 2.自动装配的4种类型: byName:把与bean名字(ID)相同的其他Bean自动装配到Bean的对应属性中. byType:把与bean 类型相同的其他B…
注解的方式确实比手动写xml文件注入要方便快捷很多,省去了很多不必要的时间去写xml文件 按以往要注入bean的时候,需要去配置一个xml,当然也可以直接扫描包体,用xml注入bean有以下方法: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="htt…
Bean的作用域 Spring 3中为Bean定义了5中作用域,分别为singleton(单例).prototype(原型).request.session和global session,5种作用域说明如下: singleton:单例模式,Spring IoC容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一对象.Singleton作用域是Spring中的缺省作用域,也可以显示的将Bean定义为singleton模式,配置为: <bean id="userDao…
Dao层代码: package com.it.dao; public interface SayHell { public void sayHello(); } Dao的Impl实现层: package com.it.dao.impl; import java.util.List; import java.util.Map; import com.it.dao.SayHell; /** * Spring如何知道setter方法?如何将值注入进去的呢?其实方法名是要遵守约定的,setter注入的方…
Spring框架的插件springsource-tool-suite-3.4.0.RELEASE-e4.3.1-updatesite(是一个压缩包)导入步骤: eclipse->help->Instal New Software->点击add,找到该压缩包->选择 Name下面选择带有 /Spring IDC 的多选框->取消最下边的选框  contact all...->next...->finish: 建立一个java project,在工程目录下(day-1…
该jboss集成到eclipse 关掉Jboss控制台新闻Ctrl+c,在MyEclipse→Servers→Jboss可配置JBoss. 通过ANT提高EJB应用的开发效率 在HelloWorld 增加ANT,右击项目新建xml:build.xml,右击打开方式选择Ant .. 相应用进行编译.打包.公布.解公布 <? xml version="1.0" encoding="UTF-8"? > <!--basedirz项目所在路径,.代表在bui…
写在前面 上面四篇文章讲了Spring是如何将配置文件一步一步转化为BeanDefinition的整个流程,下面就到了正式创建Bean对象实例的环节了,我们一起继续学习吧. 2.初始化Bean对象实例 Resource resource = new ClassPathResource("beanFactory.xml"); BeanFactory beanFactory = new XmlBeanFactory(resource); Student student = beanFact…
spring  在容器中一个bean依赖另一个bean 需要通过ref方式注入进去 通过构造器 或property…
通过XML装配Bean ​ 尽管我们在生成Bean的过程中可以用到很多方法,但我们依然需要Spring的XML配置来完善更多的需求,下面就来介绍下XML装配Bean的过程是怎样的. 3.1创建XML配置规范 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=&quo…
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'us' defined in class path resource [com/liuyang/test/DI/beans2.xml]: Cannot resolve reference to bean 'daoa' while setting bean property 'daoa'; nested exception…
http://jinnianshilongnian.iteye.com/blog/1413857 2.3.1  XML配置的结构 一般配置文件结构如下: <beans> <import resource=”resource1.xml”/> <bean id=”bean1”class=””></bean> <bean id=”bean2”class=””></bean> <bean name=”bean2”class=””>…
1 环境版本说明 Jdk : 1.8 Maven : 3.5 IDEA : 专业版 2017.2 2 环境准备 2.1 Maven安装及其配置 2.2 Tomcat安装及其配置 3 详细步骤 3.1 根据模板创建maven工程 file -> new -> project -> maven -> webapp 技巧01:根据模板创建web工程时,请选择 maven-archetype-webapp 3.2 目录结构调整 项目创建成功后的目录结构如下: 跳坑01:新创建的项目中没有存…
调试Spring项目出现No bean class specified on bean definition异常 但是控制台并没有给出其他相关信息了 这个时候可以在AbstractBeanDefinition的源码抛出异常的位置添加断点开始调试  通过监视得到抛出该异常的类的相关信息 从而解决问题…
maven子项目spring配置文件创建bean 没有找到另一个子项目中的bean. 需要引入另一个子项目的配置文件,仅提供测试用 如下: <!-- 仅供测试用 --> <import resource="classpath:spring/applicationContext-dao.xml"/> -----------------------------------------------------------------------------------…
对于学习spring有帮助的站点:http://jinnianshilongnian.iteye.com/blog/1482071 Bean的自己主动装配 Spring IOC 容器能够自己主动装配 Bean. 需要做的仅仅是在 的 autowire 属性里指定自己主动装配的模式 有以下几种自己主动装配的类型: byType(依据类型自己主动装配): 若 IOC 容器中有多个与目标 Bean 类型一致的 Bean. 在这样的情况下, Spring 将无法判定哪个 Bean 最合适该属性, 所以不…
Spring4.0的新特性我们在上一章已经介绍过了. 包含它对jdk8的支持,Groovy Bean Definition DSL的支持.核心容器功能的改进,Web开发改进.測试框架改进等等.这张我们主要介绍spring4.0的自己主动扫描功能,以及对bean的过滤等特性进行学习. 好吧.废话少说,我们来看看代码吧. package com.herman.ss.test; import org.springframework.context.ApplicationContext; import…
    一.为什么使用EJB ? 企业Bean执行在EJB容器中.企业Bean实际上就是一个封装了业务逻辑的Java类,那么我们为什么要使用EJB呢 ? 1.最重要的原因:分布式.简要的说,分布式能够将分布在各处的资源综合利用,可是对于用户来说展现的是一个统一的总体:分布式能够动态分配任务,分散物理的和逻辑的资源.从而提高运行效率:分布式技术能够避免因为单个节点失效而使整个系统崩溃的危急. 2.分布式对象之间的事务支持,RMI(Remote Method Invocation,远程方法调用)不支…
使用Spring开发的时候报错如下: Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'userDaoImpl' for bean class [cn.arebirth.impl.UserDaoImpl] conflicts with existing, non-compatible bean definitio…
一.项目搭建 1.项目创建 eclipse→project explorer→new→Project→Maven Project 默认配置即可创建项目 2.spring配置 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.13.RELEASE</version>…
需要在<bean>的autowire属性里指定自动装配的模式 byType(根据类型自动装配) byName(根据名称自动装配) constructor(通过构造器自动装配) 名字须与属性名一致 byName根据Bean的名字和当前bean的setter风格的属性名进行自动装配,若有匹配的,则进行自动装配,没有则不装配 byType  根据bean的类型和当前bean的属性的类型进行自动装配 缺点:有一个以上的类型匹配的bean则抛异常 自动装配的缺点 不够灵活,不能两者兼而言之 Bean之间…
1.自动装配 beans-autowire.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:util="http://www.…
 问题描述: (1)javaWeb项目启动中,还没启动完成,在下面这个类加载另一个Bean类, (2)通过getBean方法获取到该Bean,可以获取到,不为null (3)但是,调用该Bean的方法insertSelective()方法,进不去该方法 解决方法: 项目启动时,延迟5秒即可,下面这个类等待5秒,等它调用的Bean加载完,就能调用了 public enum RfidRecordStorage { INSTANCE; private static Logger logger = Lo…
这个需求应该也比较常见,在不同的条件下创建不同的bean,具体场景很多,能看到这篇的肯定懂我的意思. 倘若不了解spring4.X新加入的@Conditional注解的话,要实现不同条件创建不同的bean还是比较麻烦的,可能需要硬编码一些东西做if判断.那么现在有个@Conditional注解后,事情就简单多了.用法很简单,直接上代码. 新建一个springboot项目,添加一个Configuration标注的类,我们通过不同的条件表达式来创建bean.   package com.tianya…