Spring使用注解代替配置

一.Spring使用注解代替配置

  1.使用注解之前,较新的spring版本得导入spring的一个aop包,还需要导入schame目录下的context目录的约束文件并引入到主配值中

  2.在主配置文件开启使用注解的一个标签,如图:

 

  3.现在就可以到指定包下的类中加注解了

 

二.在类上的注解

  1.如果想指定该类注册到主配值文件中,可以在类上加@Component(value="user1"),value是指定对象的命名,相对于主配置文件的<bean name="user1" class="">

  2.除了@Component()之外还有三个跟它作用上一模一样,只是命名不同:@Controller,@Service,@Repository;可以清楚的知道对象是属于哪一层的

  3.描述scopre属性,可以在类上加@Scope(scopeName = "singleton")

 

三.属性上的注解

  1.在值属性上可以加@Value(value="tom"),在主配置相当:<property name="属性名" value="tom"></property>

  2.对象属性上:

      >可以加@Autowired,表示在spring容器中自动装配符合对象类型的对象;如果存在多个类型相同的对象则无法具体注入哪一个对象

      >@Autowired+@Qualifier("car1")一起使用,自动装配指定名称的对象

      >@Resource(name="car1"),手动注入指定名称的对象(推荐使用)

  3.在属性上面注入是通过反射的Filed,这种方式是破坏了面向对象思想的封装性,官方呢是更推荐使用set方法注入在set方法上加注解,不过这东西仁者见仁智者见智。

 

四.方法上的注解

  1.如果想指定对象的初始化方法和摧毁前调用的方法,可以在指定的方法上加@PostConstruct表示初始化,@PreDestroy表示spring容器摧毁前调用

  2.如果scope属性是prototype的话,创建的实例是不归容器管理的,也意味着对象的方法有@PreDestroy也不会调用

posted @   爱编程DE文兄  阅读(376)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示