spring boot 常用标签

@Configuration

这个标签主要功能是加载spring所需的包,用于定义配置类,可替换xml配置文件

@ComponentScan(basePackages= "com.huoxin.order")

这个标签主要功能是扫描指定包下的所有方法以及扫描注入类
 

@EnableAspectJAutoProxy(proxyTargetClass=true)

开启AspectJ 自动代理模式,如果不填proxyTargetClass=true,默认为false

这里说明一下spring支持两种动态代理,默认是false 对应JDK动态代理, true对应GCLib动态代理(GCLib别jdk效率高10倍左右)

@controller 控制器(注入服务)

@service 服务(注入dao)

@repository(实现dao访问)

@component (把普通pojo实例化到spring容器中,相当于配置文件中的 <bean id="" class=""/>)泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。

案例: 
<context:component-scan base-package=”com.*”> 
上面的这个例子是引入Component组件的例子,其中base-package表示为需要扫描的所有子包。 
共同点:被@controller 、@service、@repository 、@component 注解的类,都会把这些类纳入进spring容器中进行管理

扫描二维码关注公众号,回复: 6018828 查看本文章

@Aspect(标示这是一个切面 通常和@component  和 @Pointcut 以及 @Around 配合使用)

@Pointcut("execution(* com.huoxin.psc.order.api.OrderServiceImpl.*(..))") 指定一个切面的路径

@Around("方法名")

这里的切面一般做公共处理的操作 比如  日志打印处理   上面的路径就是当前路径下的逻辑代码都可以走这个日志切面方法

下面给个例子

其实这也充分说明了spring核心机制之一  AOP

@EnableTransactionManagement // 启注解事务管理,等同于xml配置方式的 <tx:annotation-driven />

@Transactional 在要增加事物的方法上增加就可以   和上面的@EnableTransactionManagement联合使用

@Autowired 按类型注入(比如两个类名字一样但是参数不一样 用Autowired 注入就算名称相同也可以注入 可以和@Qualifier(userServiceImpl)配合使用  这样联合用的效果和@resource是一样的)

@Resource 按名称注入  (不通名称即可)

@lazy 表示在spring启动时可以让某个类不进行初始化(默认是 lazy-init=false 表示初始化加载全部类 当然要有上面的各种层的标识@bean等等  如果改变为true则这个类在启动spring时候就不会加载  而是在调用的时候在去初始化)

@HttpService 标识服务层可以通过http访问(比如postman 当然要配合 @HttpServiceMethod(URI = "/huoxin/index")使用)

到这里就差不多了基本上常用的都在这里,其实这些标签足以体现spring的  AOP 和 IOC 就这点东西

猜你喜欢

转载自blog.csdn.net/u010310183/article/details/89514902