JavaEE注解归类学习

一、JavaSE阶段

二、JavaEE Web学习阶段(Servlet+jsp+Ajax+myBatis)

三、JavaEE Spring5基础框架阶段

组件类注解

1、Compnent

可以算的上是一种元注解类型,等价于Service,下面三种注解的定义依赖于该注解
注解:@Component注解可以等价,作用于类,Spring会扫描组件类然后实例化

//给实例化的bean的取一个名字"userService"
@Component(“userService”)
public class UserServiceImpl implements UserService{}

//不给实例化的bean取名字,默认按照类的首字母小写来声明,即bean的名称为“userServiceImpl”
@Component 
public class UserServiceImpl implements UserService{}
  • @Controller(用于区分表现层) @Service(用于区分业务层) @Repository(用于区分数据层) 继承了 @Component
  • @Configuration也继承了@Component 且代表Spring配置,相当于applicationContext.xml

2、Configuration 为Spring配置类进行标记

3、Service 为数据访问层进行标记

4、Repository 为数据持久层进行标记

5、Scope 作用范围,面试重点 ,Java中的五大作用域之一,默认情况是单例的

在这里插入图片描述
在这里插入图片描述

6、PostConstruct 为Bean的声明周期中初始化方法进行标记

在这里插入图片描述

7、PreDestroy 容器关闭,Bean对象会进行入销毁阶段(不重要)

ApplicationContext 没有Close 方法,其实现类是有close()方法。

在这里插入图片描述
还有例如

8、Lazy (不重要,用的很少)

与Bean中的LazyInit效果是一样的,在性能优化方面有应用,默认是true,是延迟(注解开发),xml配置中采取的是立即实例化策略,因为xml要解析,需要时间,本身就是要把实例化的Bean放入到Ioc容器中。
小结:
在这里插入图片描述
在这里插入图片描述

9、工厂Bean注解(非常重要)

一般工厂类,
在这里插入图片描述
IOC 操作 Bean 管理(FactoryBean)
1、Spring 有两种类型 bean,一种普通 bean,另外一种工厂 bean(FactoryBean)
2、普通 bean:在配置文件中定义 bean 类型就是返回类型
3、工厂 bean:在配置文件定义 bean 类型可以和返回类型不一样
第一步 创建类,让这个类作为工厂 bean,实现接口 FactoryBean
第二步 实现接口里面的方法,在实现的方法中定义返回的 bean 类型

在这里插入图片描述

package com.ligong.factory;

import com.ligong.service.UserService;
import com.ligong.service.impl.UserServiceImpl;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * project : spring_01
 * <p> 定义工厂方法,加上@Bean注解完成工程bean实例化 </p>
 *
 * @author
 * @date 2022-02-10【星期四】
 **/
@Configuration
public class UserServiceFactory {
    /**
     * 静态工厂方法,被bean所标识的,返回对象会放置到IOC容器中
     * @Bean放在工厂方法上,如果不声明名字,默认是方法名称。
     * @author luozhao
     * @date 2022/2/10 15:10
      * @param
     * @return UserService
     */
    public static UserService createUserService1(){
        return new UserServiceImpl();
    }
    @Bean({"u1","u2"})
    public UserService createUserService2(){
        return new UserServiceImpl();
    }
}

10、PropertySource

没有默认值的注解必须要进行给值
1、普通数据例如
PropertySource(classpath:jdbc.properyies)加载dataSource连接信息
在这里插入图片描述

10.1、Value

成员属性赋值

11、import 引入外部配置类

12、AutoWired 自动装配类型注解

Spring会根据规则自动给引用类型成员赋值
规则:
默认会按照类型去找,但是容器中如果一个字节码文件有3个对象那么会按照Bean"名称去找"

在这里插入图片描述

错误展示:
在这里插入图片描述
在这里插入图片描述
XML方式自动装配的类型:
在这里插入图片描述
在这里插入图片描述

13、@MapperScan(basePackages = “com.ligong.mapper”)

用来扫描Dao层(Mapper层)
在这里插入图片描述

14、@ComponentScan(“com.ligong”)

扫描配置Bean,添加到SpringIOC容器中

AOP阶段注解学习

1、Aop是一种面向切面的编程思想
显示Aop思想技术:
aspectj 、spring aop(使用动态代理技术奖切面中通知应用到目标类中方法上 进而增强)
2、aop概念
目标对象:要被增强的方法所在类的对象
切面:抽取公共重复的代码封装为类@Aspect
织入:将切面中的通知方法应用到目标对象的方法前后的位置,这个过程叫做"织入"
注意:目标对象和切面类对象都要放到容器中!
3、aop入门案例
一个前提要在poml文件找那个引入spring-context核心jar以及aspectjwearver
三个步骤:
目标对象放置到容器中

@Aspect 切面===>@Ponintcut(配置切入点表达式)

1、@Aspect 标记Aop切面类,使该类变为一个切面类

要与@Component 进行组合使用,添加到Ioc容器中

2、 @Pointcut 配置切入点匹配规则

5种通知

3、@Before前置通知

4、@After后置(最终)通知

在这里插入图片描述

5、@Around 环绕通知

在这里插入图片描述
执行结果:
在这里插入图片描述
如果不写jionPoint.proceed();那么会不执行save方法。
在这里插入图片描述
环绕通知种jionPointApi可以通过反射获取相信的方法信息
在这里插入图片描述

6、AfterReturning @返回通知

在这里插入图片描述

7、AfterThrowing异常通知

在这里插入图片描述

5种通知执行顺序

值得注意的是Spring 5.2.7之前的版本不是下面这个顺序
在这里插入图片描述

链接: Spring整合Mybatis、Junit、Aop的一个记录用户操作记录的小案例。.

Spring 事务声明

SpringMvc中注解

RestFul风格注解

1、PathVariable

案例1、
在这里插入图片描述
案例2、
持久层dao中接口注解:
在这里插入图片描述
Controller中处理分页注解:
在这里插入图片描述

前端页面通过PostMan请求结果
在这里插入图片描述
StringBoot中枚举注入,和枚举读取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值