老师请检查,抛出注解的问题!
package aop2;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.annotation.Resources;
@Component
//@Service
//@Repository
public class BookShop {
public void sellingBooks(){
System.out.println("卖出了寂寞无聊和孤独!");
}
}
package aop2;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
@Component
@Aspect
public class MethodPro {
@Before("execution(* aop2..*.*(..))")
public void preSales(){
System.out.println("===售前服务===");
}
@AfterReturning("execution(* aop2..*.*(..))")
public void afterSale(){
System.out.println("==售后服务===");
}
}
package aop2;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringApplication {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:aop2.xml");
BookShop b = context.getBean(BookShop.class);
b.sellingBooks();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<context:component-scan base-package="aop2"/>
<aop:aspectj-autoproxy/>
</beans>
老师在BookShop类的上面用什么注解合适呀,我用了这三个注解感觉都可以运行呢,哪一个会比较恰当呀?
老师在这个位置,用两个参数的方法前面指定BookShop类为啥会出错呢?只能用这种形式进行实例吗?
BookShop b = context.getBean(BookShop.class);
25
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小尤
2021-09-13 14:42:07
同学你好,1、已完成练习,棒棒哒!继续加油!
2、@Component, @Service, @Repository是spring注解,注解后可以被spring框架所扫描并注入到spring容器来进行管理 。所以在此处使用哪个注解都可以。不过具体使用哪个注解,建议同学根据他们的作用选择使用。如下所示:
1)@Component是通用注解,其他两个注解是这个注解的拓展,并且具有了特定的功能
2)@Service层是业务逻辑层注解,这个注解只是标注该类处于业务逻辑层。
3)@Repository注解在持久层中,具有将数据库操作抛出的原生异常翻译转化为spring的持久层异常的功能。
3) 同学描述是否是通过下方代码中的方式导致出现异常。如果是,则是可以通过该方法进行实例化的。如果不是,则建议同学重新描述一下问题。
BookShop b = context.getBean("bookShop",BookShop.class);祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星