标签 java 下的文章

@Service 源码

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component // 看这里
public @interface Service {
    // ... 
}

@Controller 源码

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component // 看这里
public @interface Controller {
     // ...
}

@Repository 源码

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented // 看这里
@Component
public @interface Repository {
    // ...
}

@Service、 @Controller、@Repository元注解 都应用了 @Component ,这就能看出来从核心功能上讲,@Service、 @Controller、@Repository@Component 做的事情几乎完全一样:都是将一个类标识为 Spring Bean,交由 Spring 容器进行管理。但它们在语义和应用分层上有明确的区别。

  • Web 层 ( @Controller ) : 接收 HTTP 请求,调用服务层。
  • 服务层 ( @Service ) : 处理核心业务逻辑。
  • 持久层 ( @Repository ) : 与数据库进行交互。
  • @Component 是 Spring 框架中最基础、最通用的构造型注解。它的作用就是告诉 Spring:“请扫描这个类,为它创建一个实例(Bean),并放到 IoC 容器里管理起来。

    ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).password("123123").withTemplate(inputStream).build();

中的 .password("123123") 就是加密方法

Spring Event 是 Spring 框架内置的事件/监听器机制,是观察者模式的一种实现。它允许一个组件(发布者)发布一个事件,而其他一个或多个组件(监听器)可以订阅并响应该事件,而发布者和监听者之间没有直接的类依赖。

- 阅读剩余部分 -