为您找到搜索结果:3349个
Spring的PropertyPlaceholderConfigurer应用
Spring利用PropertyPlaceholderConfigurer占位符 1.PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是BeanFactoryPostProcessor接口的一个实现。PropertyPlaceholderConfigurer可以将上下文(配置文件)中的属性值放在另一个单独的标准javaProperties文件中去。在XML文件中用${key}替换指定的properties文件中的值。这样的话,只需要对properties文件进行修改,而不用对xml配置文件进行修改。要了解这个类首先要弄清楚一个概念:beanfactorypost-processor(bean工厂后置处理器)官方解释是这样的:Abeanfactorypost-processorisajavaclasswhichimplementstheorg.springframework.beans.factory.config.BeanFactoryPostProcessorinterface.Itisexecutedmanually&nbs...
Spring3实战第二章第一小节 Spring bean的初始化和销毁三种方式及优先级
Springbean的初始化和销毁有三种方式通过实现InitializingBean/DisposableBean接口来定制初始化之后/销毁之前的操作方法; 优先级第二通过<bean>元素的init-method/destroy-method属性指定初始化之后/销毁之前调用的操作方法; 优先级最低在指定方法上加上@PostConstruct或@PreDestroy注解来制定该方法是在初始化之后还是销毁之前调用。 优先级最高 需要在xml配置文件中设置bean所在的位置不然不调用建立一个类packagecom.spring;importjavax.annotation.PostConstruct;importjavax.annotation.PreDestroy;importorg.springframework.beans.factory.DisposableBean;importorg.springframework.beans.factory.InitializingBean;publicclass...
Spring3实战第一章 Aop 切面 XML配置
刚看spring3实战书籍第一章 切面以前没有关注过现在看到了 随手试验一下 AOPAOP(AspectOrientedProgramming),即面向切面编程,可以说是OOP(ObjectOrientedProgramming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。日志代码往往横向地散布在所有对象层次中,而与它对应的对象的核心功能毫无关系对于其他类型的代码,如安全性、异常处理和透明的持续性也都是如此,这种散布在各处的无关的代码被称为横切(crosscutting),在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。AOP技术恰恰相反,它利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的...
Springmvc ajax跨域请求处理
上次给一个网站写网站 前后端分离最后跪在ajax跨域上面了 自己在网上找了个方法 亲试可用 记录一下写一个类 继承HandlerInterceptorAdapter packagecom.util;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.springframework.web.servlet.handler.HandlerInterceptorAdapter;publicclassCommonInterceptorextendsHandlerInterceptorAdapter{publicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{response.setHeader("Access-Control-Allow-O...
Spring3实战第二章第二小节 IOC依赖注入 list和map集合
Spring有多种依赖注入的形式,本篇文章仅介绍Spring通过xml进行IOC配置的方式。1.Set注入2.构造器注入 平常的Java开发中,程序员在某个类中需要依赖其它类的方法。 通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理。 Spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过Spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。 依赖注入的另一种说法是"控制反转"。通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员。 而控制反转是指new实例工作不由我们程序员来做而是交给Spring容器来做。 构造器注入: 本文使用构造器注入和引用了一个bean先写出需要引用的bean的接口packagecom.spring;publicinterfaceSpringAocInterface{voidshow();}实现接口packagecom.spring;publicclassSpr...
Spring jar包详解(转)
spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到spring-mock.jar来进行辅助测试,正式应用系统中是用不得这些类的。 除了spring.jar文件,Spring还包括有其它13个独立的jar包,各自包含着对应的Spring组件,用户可以根据自己的需要来选择组合自己的jar包,而不必引入整个spring.jar的所有类文件。 (1) spring-core.jar 这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。 (2)spring-beans.jar 这个jar文件是所有应用都要用到的,它包...
如何手动获取Spring容器中的bean(ApplicationContextAware 接口)
publicclassSpringContextUtilsimplementsApplicationContextAware{privatestaticApplicationContextcontext;@OverridepublicvoidsetApplicationContext(ApplicationContextcontext)throwsBeansException{SpringContextUtils.context=context;}publicstaticApplicationContextgetContext(){returncontext;}}14 1publicclassSpringContextUtilsimplementsApplicationContextAware{2 privatestaticApplicationContextcontext;34 @Override5 publicvoidsetApplicationContext(ApplicationContextconte...
源码跟读,Spring是如何解析和加载xml中配置的beans
Spring版本基于:web.xml中配置监听器<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>3 1<listener>2 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>3</listener>这是一个典型的ServletContextListener,Servlet容器(如Tomcat等)在启动时会找到ContextLoaderListener并执行其contextInitialized(ServletContextEventevent)方法。ContextLoaderListener.javaextendsContextLoaderimplem...
Struts+Spring+Hibernate项目整合AJAX+JSON
AJAX是“AsynchronousJavaScriptandXML”的简称,即异步的JavaScript和XML。所谓异步,就是提交一个请求不必等待响应回来,可以直接去做其他事情。同步则是提交请求必须等待结果返回才能进行下一步操作。同时,异步能够局部刷新页面,比如网站常见的输入用户名后的局部显示该用户名是否可用的信息,这种可以更好地提高用户体验。接下来我们回顾一下AJAX的基本用法:核心对象 XMLHttpRequest,它是浏览器内部的对象,可以用来发送HTTP请求和接收HTTP响应。它的实现根据浏览器可能有不同,一般创建需要进行条件判断if(window.ActiveObject){xmlHttp=newActiveXObject("Microsoft.XMLHTTP");}elseif(window.XMLHttpRequest){xmlHttp=newXMLHttpRequest();}5 1if(window.ActiveObject){2 xmlHttp=newActiveXObject("Microsoft.XMLHTTP");...
spring boot 启动报:Composite-id class must implement Serializable: xxx错误
在对springboot项目进行修改后,重新启动时报如下错误:Composite-idclassmustimplementSerializable:xxxxxx为具体的类找到xxx类,查看是否定义了多个@Id,如下图:如果该实体类对应的表只有一个主键,即图中的id,把linkName上面的@Id注解删除即可,重新启动就不会报错了。如果该实体类对应的表确实使用的两个字段(联合主键),则要求该实体类必须可序列化,该类要实现Serializable接口,并添加如下代码:privatestaticfinallongserialVersionUID=1L;如下图:然后重新启动即可。 ...
Spring Boot 创建自定义的properties文件
以IDEA2018为例,在资源文件夹上点击鼠标右键,依次选择New-> ResourceBundle,如下图:在弹出的对话框中,填写properties文件的名称(不用填写.properties部分),然后点击OK按钮,如下图:在Project窗口,资源文件夹下即可看到我们添加的文件,下图: ...
spring boot 使用Schedule创建轻量级定时任务
SpringBoot配置定时任务可以直接使用自带的Scheduled,这相当于一个轻量级的Quartz,它可以让我们直接使用注解来完成定时任务的配置。使用Scheduled设置任务调度时间有以下几种方式,可根据实际情况选取一种即可://通过fixedRate属性,来设置上一次调度开始后再次调度的延时,fixedRate值的单位为毫秒,此例为每5秒执行1次//注意:fixedRate只要到达间隔时间就会调度执行,不关心上次任务是否已执行完成,这样就会存在重复执行的风险!@Scheduled(fixedRate=5000)//该属性的功效与上面的fixedRate则是相反的,配置了该属性后会等到任务方法执行完成后,达到延迟配置的时间再次执行该方法@Scheduled(fixedDelay=5000)//通过cron属性,使用Cron表达式来设置执行时间,此例为每10秒执行1次//在线Cron表达式生成器:http://cron.qqe2.com/@Scheduled(cron="*/10****?")别外,可以通过initialDelay属性来设置第一次执行的延迟时间,只是做延迟的设定,并...
IDEA下创建Maven项目,并整合使用Spring、Spring MVC、Mybatis框架
本项目使用的是IDEA2016创建。项目使用Spring4.2.6,Mybatis3.4.0,Tomcat使用的是Tomcat8,数据库为MySQL。首先电脑安装Maven,接着打开IDEA新建一个project,选择Maven,选择图中所选项,下一步。填写好GroupId和ArtifactId,GroupId在公司中一般都是域名的逆序,ArtifactId用来标明该项目是用来做什么的,接着下一步。添加一个archetypeCatalog,值为internal可以加速项目的创建,不然就需要等好久,接着设置好项目的名称,点击完成就可以创建好项目了。创建好后,可以在main文件夹下新建一个java文件夹,用来保存java源文件,然后点击file,进入projectstructure,将java文件夹设置为源文件,resources设置为资源文件。这样项目创建不问基本就完成了。修改pom.xml文件如下。<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema...
比较spring cloud和dubbo,各自的优缺点是什么
dubbo由于是二进制的传输,占用带宽会更少springCloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大dubbo的开发难度较大,原因是dubbo的jar包依赖问题很多大型工程无法解决springcloud的接口协议约定比较自由且松散,需要有强有力的行政措施来限制接口无序升级dubbo的注册中心可以选择zk,redis等多种,springcloud的注册中心只能用eureka或者自研但如果我选,我会用springcloud。从公司整体规划:我不会选择很久没人维护的dubbo,重启之后也未必是原班人马从程序员招聘难度:招springcloud的程序员会更好招,因为更新更炫从系统结构简易程序:springcloud的系统结构更简单、“注册+springmvc=springcloud”,而dubbo各种复杂的Url,protocol,register,invocation,dubbofilter,dubboSPI,dubbo序列化..........炫技的成分更多一些从性能:dubbo的网络消耗小于springcloud,但是在国内95%的公...
org.springframework.dao.InvalidDataAccessApiUsageException: Parameter value [41] did not match expected type [java.lang.Integer (n/a)];
题记:以前记录过一些自己遇到的BUG,这个行为,让我一看报错的提示信息就能定位到问题的所在,后来记得比较多了,好多是重复性的再加上比较忙就没有详细的记录了,今天的工作量比较小,就顺便记录一下,以便以后更快的解决此类问题。BUG的报错信息如下所示:org.springframework.dao.InvalidDataAccessApiUsageException:Parametervalue[41]didnotmatchexpectedtype[java.lang.Integer(n/a)];nestedexceptionisjava.lang.IllegalArgumentException:Parametervalue[41]didnotmatchexpectedtype[java.lang.Integer(n/a)]atorg.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:381)atorg.sp...