今天在开发过程中,遇到一个问题卡了很久,测试代码如下: package spring.pointcut; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; /** * @Description: P…
.下面的tx要定义 <objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database" xmlns:tx="http://www.springframework.net/tx"> .启用事务切面和类型代理 <tx:attribute-driven transaction-manager="T…
在使用Spring boot 开发restful 风格的项目,put.delete方法不起作用,解决办法. 实体类Student @Data public class Student { private String id; private String name; private int age; private String sex; @Override public String toString() { return ToStringBuilder.reflectionToString(…
问题: 如果同一个类中有方法:methodA(); methodB().methodA()没有开启事务,methodB()开启了事务 且methodA()会调用methodB(). 那么,methodA()调用methodB()时,不会开启事务!!! 即:同一个类中,无事务的方法调用有事务的方法,结果就是没有事务!!! 原因:点这里 解决办法:要么声明要事务,要么分开成两个类,要么直接在方法里使用编程式事务. 建议直接分成两个类.…
一.Spring异步调用底层原理 开启异步调用只需一个注解@EnableAsync @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Import(AsyncConfigurationSelector.class) public @interface EnableAsync { /** * Indicate the 'async' annotation type to be detected at…
这遍文章将介绍Spring AOP切点表达式(下称表达式)语言,首先介绍两个面向切面编程中使用到的术语. 连接点(Joint Point):广义上来讲,方法.异常处理块.字段这些程序调用过程中可以抽像成一个执行步骤(或者说执行点)的单元.从Spring AOP来讲,就是指java的方法和异常处理代码块. 切点(Pointcut):是连接点的描述定义,Spring AOP通过切点来定位到哪些连接点.切点表达式语言就是切点用来定义连接点的语法. 切点指示符 切点指示符是切点定义的关键字,切点表达式以…
在上一个Spring AOP通知的例子,一个类的整个方法被自动拦截.但在大多数情况下,可能只需要一种方式来拦截一个或两个方法,这就是为什么引入'切入点'的原因.它允许你通过它的方法名来拦截方法.另外,一个“切入点”必须具有“Advisor' 相关联. 在Spring AOP中,有三个非常专业术语- Advices, Pointcut , Advisor,把它在非官方的方式... Advice(通知) – 指示之前或方法执行后采取的行动. Pointcut(切点)– 指明哪些方法应该拦截,通过方法…
1.导包: 导入spring中的这两个包 再导入其他包(网上下载): 2.准备目标对象: package service; public class UserServiceImpl implements UserService { @Override public void save() { System.out.println("保存用户!"); } @Override public void delete() { System.out.println("删除用户!&quo…
1. 简介        面向对象编程,也称为OOP(即Object Oriented Programming)最大的优点在于能够将业务模块进行封装,从而达到功能复用的目的.通过面向对象编程,不同的模板可以相互组装,从而实现更为复杂的业务模块,其结构形式可用下图表示:         面向对象编程解决了业务模块的封装复用的问题,但是对于某些模块,其本身并不独属于摸个业务模块,而是根据不同的情况,贯穿于某几个或全部的模块之间的.例如登录验证,其只开放几个可以不用登录的接口给用户使用(一般登录使用拦…
1.见解 1.1 客户端的接口代码还一定要和服务端的接口代码一样,连注解都要一样,不够灵活 1.2 当客户端访问服务器的请求地址时,如果服务端没有对应的地址,就会报错,但是又没有cxf的异常捕获处理 1.3 address中的url是模糊匹配的 //服务端代码 2.UserBean.Java package cn.hk.bean; public class UserBean { private int id; private String userName; private String pas…
public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath*:config" + "/spring/applicationContext-core2.xml"); MyService as = (MyService) context.getBean("annota…
网上这方面的例子不是很多,研究了一下,列出几个调用的方法. 假如我们有一个mysql的存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `plus1inout`(IN ARG INT, OUT res INT) BEGIN ; END 就是传入一个int参数,返回这个参数+1. 如果我们要调用这个存储过程的话.可以这么做. 标注entity package com.labofjet.entity; import javax.persistence.…
weblogic10 部署 spring+cxf ,调用时报:cannot create a secure XmlInputFactory   一个cxf webservice项目部署到tomcat能正常运行,客户端也能正常调用. 然后我部署到weblogic,同样能成功访问wsdl,但是客户端请求就报错cannot create a secure XmlInputFactory. 后面按照网上说的只要在cxf webservice项目路径下(WebContent\WEB-INF\weblogi…
Spring远程支持是由普通(Spring)POJO实现的,这使得开发具有远程访问功能的服务变得相当容易 四种远程调用技术: ◆ 远程方法调用(RMI) ◆ Caucho的Hessian和Burlap ◆Spring自己的Http invoker ◆使用SOAP和JAX-RPC的web Services Spring对上面的远程服务调用都有支持 Spring远程调用支持6种不同的RPC模式:远程方法调用(RMI).Caucho的Hessian和Burlap.Spring自己的HTTP invok…
[一]spring的远程调用提供的基础类 (1)org.springframework.remoting.support.RemotingSupport ===>spring提供实现的远程调用客户端实现的基础类 ===>例子:org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean org.springframework.remoting.caucho.HessianProxyFactoryBean (2)org.…
前面已经学习了两个Spring Cloud 组件: Eureka:实现服务注册功能: Ribbon:提供基于RestTemplate的HTTP客户端并且支持服务负载均衡功能. 通过这两个组件我们暂时可以完成服务注册和可配置负载均衡的服务调用.今天我们要学习的是Feign,那么Feign解决了什么问题呢? 相对于Eureka,Ribbon来说,Feign的地位好像不是那么重要,Feign是一个声明式的REST客户端,它的目的就是让REST调用更加简单.通过提供HTTP请求模板,让Ribbon请求的…
问题描述 Spring Cloud Feign调用其它服务报错,错误提示如下:Failed to instantiate [java.util.List]: Specified class is an interface. 解决方案 通过查询一些资料,得到的结论,是定义接口传递的参数时,没有用@RequestBody修饰,查看定义接口有用@RequestBogy修饰,Feign的接口实现里没有用@RequestBody修饰,添加后问题就解决了,以后还是要仔细看待每个问题.…
这个东西源于这种需求:一个应用丢到服务其后,不管用户有没有访问项目,这个后台线程都必须给我跑,而且这个线程还调用了Spring注入的bean,这样自然就会想到去监听Servlet的状态,当Servlet初始化完毕后会调用ServletContextListener中的contextInitialized方法,所以可以创建一个监听器继承ServletContextListener类来监听Servlet的状态,在contextInitialized方法中来启动后台的线程,但是如何使用Spring注入…
Spring AOP 的使用过程理解 首先,aop的使用场景介绍: 1.处理一些通用的非功能性的需求,不影响业务流程,比如说打印日志.性能统计.推送消息等: 2.aop无法拦截static.final方法.private方法 3.无法拦截内部方法调用 如果只要访问目标方法的参数,Spring还提供了一种更简单的方法:我们可以在程序中使用args来绑定目标方法的参数.如果在一个args表达式中指定了一个或多个参数,则该切入点将只匹配具有对应形参的方法,且目标方法的参数值将被传入增强处理方法. Pe…
Spring MVC中每个控制器中可以定义多个请求处理方法,我们把这种请求处理方法简称为Action,每个请求处理方法可以有多个不同的参数,以及一个多种类型的返回结果. 一.Action参数类型 如果在请求处理方法中需要访问HttpSession对象,则可以添加HttpSession作为参数,Spring会将对象正确的传递给方法,如:public  String action(HttpSession session):若需要访问客户端语言环境和HttpServletRequest对象,则可以在方…
参考链接,多谢作者: http://blog.csdn.net/lee353086/article/details/52586916 http元素下的form-login元素是用来定义表单登录信息的. 当我们什么属性都不指定的时候Spring Security会为我们生成一个默认的登录页面. 如果不想使用默认的登录页面,我们可以指定自己的登录页面. 一.form-login元素介绍  1.使用自定义登录页面 自定义登录页面是通过login-page属性来指定的.提到login-page我们不得不…
使用spring 的拦截器对方法进行拦截,不管是动态代理,还是cglib, 只能拦截到被代理对象的调用方法,对于被调用方法里再调用同一对象里的其他方法就无法拦截到,就是我们说的嵌套拦截,之前文章里提及过加载器改写实现拦截(美团cat方式) , 今天试验出另外一种方法 我们要在spring初始化对象后对其用cglib加强修改,重新注入到容器当中 刚开始想在容器初始化完毕后修改bean, 利用实现ApplicationListener接口 public class InstantiationTrac…
今天接触了Spring的初步用法, 感觉跟实例化实体类没啥区别, 像这种简单的代码还不如直接实例化来的方便, 这样使用Spring的话总共需要三个文件 第一个当然是一个实体类了, 定义好属性, getter和setter方法, 别忘了构造一个无参的构造方法. public class HelloWorld { private String mingzi; private String dizhi; private User user; public void sayHello() { Syste…
本文github位置:https://github.com/WillVi/Spring-Annotation/ 往期文章:Spring注解开发-全面解析常用注解使用方法之组件注册 bean生命周期 ​ 创建------>初始化------->销毁.容器统一管理bean的生命周期,我们也可以自定义初始化和销毁方法:容器在bean进行到当前生命周期的时候来调用我们自定义的初始化和销毁方法. 流程: 构造(对象创建) 单实例:在容器启动的时候创建对象 多实例:在每次获取的时候创建对象 BeanPos…
一.背景知识及需求 在做WEB项目时,经常在项目第一次启动时利用WEB容器的监听.Servlet加载初始化等切入点为数据库准备数据,这些初始化数据是系统开始运行前必须的数据,例如权限组.系统选项.默认管理员等等.而项目采用了Spring依赖注入来管理对象,而servlet并不受Spring的管理.若此时在servlet中注入Spring管理的对象,则无法使用,如下: public class InitServlet extends HttpServlet { @Autowired private…
[转][原文]  1.如果父类构造器调用了被子类重写的方法,且通过子类构造函数创建子类对象,调用了这个父类构造器(无论显示还是隐式),就会导致父类在构造时实际上调用的是子类覆盖的方法(你需要了解java继承中的初始化机制). 例子: [java] view plain copy public abstract class Father { public Father() { display(); } public void display() { System.out.println("Fath…
背景: 这几天,由于项目集成的需要,我要在doFilter里调用dao层里的某些方法,可是总之报空指针,只要调用那个dao方法,就报错误.很是纳闷,网上查找了各种原因,终于让我给突破了,看来还是Java基础掌握的不够呀! 代码: 在servlet中加入私有变量UserDao,然后在servlet的init()方法中初始化一下即可用. private UserDao userDao; public void init(FilterConfig filterConfig) throws Servle…
常见的依赖注入方法有三种:构造函数注入.set方法注入.使用P名称空间注入数据.另外说明下注入集合属性 先来说下最常用的那个注入方法吧. 一.set方法注入 顾名思义,就是在类中提供需要注入成员的 set 方法.具体代码如下: public class AccountServiceImpl{ private String name; private Date birthday; public void setName(String name) { this.name = name; } publ…
MongoDB是最流行的NoSQL数据库,SpringBoot是使用Spring的最佳实践.今天带大家讲一讲SpringBoot集成MongoDB的两种方式,MongoDB的安装自行去官网查询,本地开发最方便的做法是使用Docker方式. 一.准备工作 1.工程生成 老规矩,使用https://start.spring.io/ 选择我们要依赖的jar包,生成一个demo,然后导入到Idea中 2.配置项 在application.properties文件中,配置MongoDB的地址 spring…
window.open调用父窗口中的方法 回调函数: function fun9(ex){ alert(ex); } 调用语句: window.open("RoomSelecter.htm?Ran"+Math.random(), "RoomSelecter"); 窗口页面中调用父窗口中的语句: if (window.opener && window.opener.fun9) { window.opener.fun9("ADF");…