简介 目录 评价 推荐
  • 阿阿影 2020-06-11
    我用postman发起的请求,地址怎么是这样的?

    0:0:0:0:0:0:0:1是ipv6的表现形式,对应ipv4来说相当于127.0.0.1,也就是本机,

    hosts文件中默认有:

    # 127.0.0.1        localhost
    # 0:0:0:0:0:0:0:1  localhost

    只需要把# 0:0:0:0:0:0:0:1  localhost  注释或者删除就行


    1回答·1755浏览
  • 小跟班tony 2019-05-16
    @around 加入了过后为什么@Before不执行了?

    因为没有传参https://img1.sycdn.imooc.com/292c7068093d113513711031.jpg

    3回答·4558浏览
  • 慕娘6784483 2019-05-05
    求这节课的git地址!http的

    老是第一讲就说了啊:

    https://gitee.com/liaoshixiong/girl.git

    有2个分支,你选你要的就是了

    1回答·968浏览
  • huang4095 2019-04-14
    这部分没有给代码吗

    有啊,在问答里面搜搜就看到了

    1回答·845浏览
  • 慕粉4019140 2019-03-04
    AOP语句不生效的原因

    有可能出现的问题:

    1:execution表达式写错了。

    2:配置文件或配置类中忘记添加<aop:aspectj-autoproxy/>。

    3:如果切入点没有实现接口需要使用cglib动态代理,<aop:aspectj-autoproxy proxy-target-class="true"/>。

    4:<context:component-scan 配置的问题导致无法动态代理,具体请参考官方文档。

    一般情况下主配置文件要排除@Controller注解,webmvc配置里应该只包含@Controller注解。

    如果我们要切入Controller,我们需要在webmvc配置里面加入<aop:aspectj-autoproxy proxy-target-class="true"/>。

    如果我们要切入其他如Service,我们需要在主配置里面加入<aop:aspectj-autoproxy proxy-target-class="true"/>。

    如果我们既要切入Controller又要切入Service,两个配置都需要加入<aop:aspectj-autoproxy proxy-target-class="true"/>。这个问题比较奇怪,目前还不知道解决方法。


    1回答·2830浏览
  • aimu_rong 2019-01-06
    RequestContextHolder.getRequestAttributes() 获得null是为什么
    2回答·5937浏览
  • 麻了一一一 2018-12-10
    师兄,@Pointcut注解下的log()方法是干嘛的?可以理解为标记的类方法的别名吗?

    没啥  就是定义了一个切点  

    1回答·2108浏览
  • rchao 2018-12-06
    数据库问题

    那个被举报的2小时学springboot里面有,这个是后面的

    1回答·1104浏览
  • 带带小老弟 2018-11-16
    关于request对象

    @autowired一般不用做于局部变量,通常都是放在方法之前作为一个全局变量来进行使用的,如果放入到方法之中你会发现提示使用不当的意思,new 一个对象虽然说后期维护比较麻烦,牵一发而动全身,但是如果是单单在一个方法一次使用的话,效果是都一样的,但是毕竟局部变量不会像全局变量那样一直占用着内存,能够算是优化吧(个人理解,欢迎指教)

    2回答·1016浏览
  • 九郎2320 2018-10-21
    setter/getter方法插件
    <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
       <version>1.16.10</version>
    </dependency>
    
    类之前加@Data注解即可
    1回答·1391浏览
  • 喵喵喵喵呱 2018-09-28
    RequestConditionHolder.getRequestAttributes()

    自己解决了,打错了

    1回答·1004浏览
  • 崔国新 2018-09-28
    找不到getRequestAttributes()方法

    我也没有这个方法

    2回答·1160浏览
  • 慕瓜阿海 2018-09-14
    映射不到方法,求指教
    已采纳 qq_无齿又怎样_0 的回答

    你girlList方法和girlAdd方法的value值一样,也就是,映射路径一样,请求时不知道调用哪个方法,去掉其中一个注解就可以了,或者更改其中一个的value值

    1回答·1232浏览
  • 慕粉3437296 2018-08-27
    import org.aspectj.lang.JoinPoint;找不到是怎么回事
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.9.4</version>
    </dependency>


    2回答·16634浏览
  • qq_KD_2 2018-07-22
    请求方法有三个参数,但是joinpoint.getArgs()却只返回了一个

    https://img1.mukewang.com/5b5693be0001a3fd02590052.jpg返回是一个数组,循环可以得到全部参数;好像默认为方法注解参数的第一个

    1回答·20384浏览
  • wokenshin 2018-07-11
    id地址和老师的不一致

    你输入localhost:8080就是这个值,但是你用127.0.0.1访问就是127.0.0.1,或者你使用别人的机器访问你的程序,这个ip应该就会是别人的ip

    4回答·1063浏览
  • 慕勒2185921 2018-06-27
    AOP日志不打印

    https://www.imooc.com/qadetail/303562

    希望可以帮到你,我也卡了很久了,后面发现是版本不匹配的原因

    4回答·771浏览
  • 慕瓜9153179 2018-06-14
    RequestContextHolder.getRequestAttributes() 获取对象为空,廖师兄是什么原因呢?

    打开浏览器开发者工具(F12),查看一下network是否有发送http请求,然后可以在项目中打个断点调试一下,分析一下是什么原因

    5回答·8612浏览
  • 萝卜小木头 2018-06-02
    运行报错Field girlRepository in com.imooc.controller.GirlController required a bean named 'entityManagerFactory' that could not be found.请问是怎么回事?

    https://stackoverflow.com/questions/42182426/spring-boot-repository-field-required-a-bean-named-entitymanagerfactory-that直接看这个解答吧,解决了

    7回答·5426浏览
  • 黄月初 2018-05-12
    JpinPoint点不出方法啊
    已采纳 shadowdoor 的回答

    形参名?

    https://img1.mukewang.com/5afd21af00011c0511830512.jpg

    1回答·1593浏览
  • ___Leo__ 2018-05-11
    joinpoint是哪一个包里的啊?
    import org.aspectj.lang.JoinPoint;


    2回答·3071浏览
  • 树34 2018-05-07
    这么多对象方法怎么才能都记住呢?

    找个地儿copy一份,等到要用的时候就copy回来

    1回答·1100浏览
  • 慕粉1203074875 2018-04-21
    空指针异常

    贴出控制台的异常信息,定位一下

    1回答·1228浏览
  • ximenlv 2018-04-18
    RequestAttributes 可以强转成 HttpserletRequest 可以说明下吗?
    2回答·2236浏览
  • 吃素只吃肉 2018-03-08
    异常统一处理之后,aop统一打印返回数据不打印

    @AfterReturning增强处理将在目标方法正常完成后被织入。@AfterThrowing增强处理主要用于处理程序中未处理的异常。

    2回答·1774浏览
  • 沨沙 2018-03-02
    spring boot视频不完整?

    可能是跳过了,利用validate 可以补充必填字段验证

    1回答·1300浏览
  • 榴芒双拼 2017-12-28
    JAVA学习
    已采纳 MrXu0314 的回答

    每次去找资料

    1回答·1136浏览
  • 慕工程0067836 2017-12-12
    @AfterReturning没有执行

    发现是Object传入的类型出错了,因为是IDEA自动导入的,导入的是com.org.omg.CORBA下的Object,改为java.lang下的Object就正常了。

    http://img4.mukewang.com/5a9f3cce0001267c06750272.jpg

    4回答·6688浏览
  • 学生_胡佳 2017-11-05
    需要toString方法吗?

    写了的

    3回答·1249浏览
  • qq_雨依_0 2017-09-24
    AOP用注解实现

    Spring对AOP的实现提供了很好的支持。下面我们就使用Spring的注解来完成AOP做一个例子。

    首先,为了使用Spring的AOP注解功能,必须导入如下几个包。aspectjrt.jar,aspectjweaver.jar,cglib-nodep.jar.

    然后我们写一个接口

    [java] view plain copy print?

    package com.bird.service;  

      

    public interface PersonServer {  

      

        public void save(String name);  

        public void update(String name, Integer id);  

        public String getPersonName(Integer id);  

          

    }  


    和一个接口实现类


    [java] view plain copy print?

    package com.bird.service.impl;  

      

    import com.bird.service.PersonServer;  

      

    public class PersonServiceBean implements PersonServer{  

          

        @Override  

        public void save(String name) {  

              

            System.out.println("我是save方法");  

        //  throw new RuntimeException();  

        }  

      

        @Override  

        public void update(String name, Integer id) {  

              

            System.out.println("我是update()方法");  

        }  

      

        @Override  

        public String getPersonName(Integer id) {  

              

            System.out.println("我是getPersonName()方法");  

            return "xxx";  

        }  

      

    }  


    下面使用Spring注解方式对这个Bean进行方法拦截


    [java] view plain copy print?

    package com.bird.service;  

      

    import org.aspectj.lang.ProceedingJoinPoint;  

    import org.aspectj.lang.annotation.After;  

    import org.aspectj.lang.annotation.AfterReturning;  

    import org.aspectj.lang.annotation.AfterThrowing;  

    import org.aspectj.lang.annotation.Around;  

    import org.aspectj.lang.annotation.Aspect;  

    import org.aspectj.lang.annotation.Before;  

    import org.aspectj.lang.annotation.Pointcut;  

      

    /** 

     * 切面 

     * @author Bird 

     * 

     */  

    @Aspect  

    public class MyInterceptor {  

        @Pointcut("execution(* com.bird.service.impl.PersonServiceBean.*(..))")  

        private void anyMethod(){}//定义一个切入点  

          

        @Before("anyMethod() && args(name)")  

        public void doAccessCheck(String name){  

            System.out.println(name);  

            System.out.println("前置通知");  

        }  

          

        @AfterReturning("anyMethod()")  

        public void doAfter(){  

            System.out.println("后置通知");  

        }  

          

        @After("anyMethod()")  

        public void after(){  

            System.out.println("最终通知");  

        }  

          

        @AfterThrowing("anyMethod()")  

        public void doAfterThrow(){  

            System.out.println("例外通知");  

        }  

          

        @Around("anyMethod()")  

        public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable{  

            System.out.println("进入环绕通知");  

            Object object = pjp.proceed();//执行该方法  

            System.out.println("退出方法");  

            return object;  

        }  

    }  

    [java] view plain copy print?

    @Pointcut("execution(* com.bird.service.impl.PersonServiceBean.*(..))")  

    这句话是方法切入点,execution为执行的意思,*代表任意返回值,然后是包名,.*意思是包下面的所有子包。(..)代


    表各种方法.

    然后下面的注解就比较简单了,就是在使用方法前和中,还有环绕拦截/

    然后在Spring的配置文件中继续配置Bean,需要打开AOP命名空间

    [java] view plain copy print?

    <?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:aop="http://www.springframework.org/schema/aop"  

           xsi:schemaLocation="  

           http://www.springframework.org/schema/beans   

           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  

           http://www.springframework.org/schema/aop   

           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">  

              

            <aop:aspectj-autoproxy/>  

        <bean id="personServiceBean" class="com.bird.service.impl.PersonServiceBean"/>  

        <bean id="myInterceptor" class="com.bird.service.MyInterceptor"/>  

         

    </beans>  


    然后建立一个Junit测试


    [java] view plain copy print?

    package junit.test;  

      

    import org.junit.Test;  

    import org.springframework.context.ApplicationContext;  

    import org.springframework.context.support.ClassPathXmlApplicationContext;  

      

    import com.bird.service.PersonServer;  

      

    public class SpringAOPTest {  

          

        @Test  

        public void inteceptorTest(){  

            ApplicationContext ctx = new ClassPathXmlApplicationContext("beanAop.xml");  

            PersonServer bean = (PersonServer)ctx.getBean("personServiceBean");  

            bean.save(null);  

        }  

          

      

    }  


    测试结果为


    [java] view plain copy print?

    2012-3-12 18:08:39 org.springframework.context.support.AbstractApplicationContext prepareRefresh  

    信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@dd20f6: display name [org.springframework.context.support.ClassPathXmlApplicationContext@dd20f6]; startup date [Mon Mar 12 18:08:39 CST 2012]; root of context hierarchy  

    2012-3-12 18:08:40 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions  

    信息: Loading XML bean definitions from class path resource [beanAop.xml]  

    2012-3-12 18:08:40 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory  

    信息: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@dd20f6]: org.springframework.beans.factory.support.DefaultListableBeanFactory@b0bad7  

    2012-3-12 18:08:40 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons  

    信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@b0bad7: defining beans [org.springframework.aop.config.internalAutoProxyCreator,personServiceBean,myInterceptor]; root of factory hierarchy  

    null  

    前置通知  

    进入环绕通知  

    我是save方法  

    后置通知  

    退出方法  

    最终通知  


    2回答·996浏览
数据加载中...
开始学习 免费