首页 > 其他分享 >spring-注解开发

spring-注解开发

时间:2023-02-14 21:55:49浏览次数:33  
标签:xml Autowired spring bean 开发 context 注解

一.注解实现自动装配

jdk 1.5开始支持注解,spring 2.5 开始支持注解!

要使用注解须知:

1.导入约束

xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context  
http://www.springframework.org/schema/context/spring-context.xsd

 

2.配置注解的支持

<context:annotation-config/>

 

完整的spring的xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xmlns:context="http://www.springframework.org/schema/context"

       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">

    <context:annotation-config/>

</beans>

 

 

第一个spring注解:@Autowired

直接在属性上使用的即可!也可以在set方法上使用!

 

 

 

使用Autowried  我们可以不用编写set方法,前提是你这个自动装配的属性的IOC(spring)容器中存在,且符合名字byName

科普:

@Nullable  字段标记了的这个注解,说明这个字段可以为null

 

    //如果显示的定义了Autowired的required的属性为 false,说明这个对象可以为null,否则不允许为空(切记:是值为空,不是bean中没有配置)
    @Autowired(required = false)
    private Cat cat;

 

第二个spring注解:@Qualifier(value = " ")

指定唯一一个bean对象注入

 

 

 

    @Autowired
    @Qualifier(value = "dog1")
    private Dog dog;

 

第三个注解,它隶属于Java:@Resource

它更像是 spring 中的 @Autowired 和 @Qualifier 的结合体,使用方便,但是性能不如后者

    @Resource(name = "dog1")
    private Dog dog;

 

总结:@Resource 和 @Autowried 的区别

  • 都是用来自动装配的,都可以放在属性字段上
  • @Autowired  通过byName 的方式实现,而且必须要求这个对象名字存在且唯一
  • @Rescource  默认通过byName的方式实现,如果找不到名字,则通过byType实现,两个都找不到,则报错

 二.使用注解开发

在spring4之后,要使用注解开发,必须要保证aop的包导入了

 

 

使用注解需要导入context约束,增加注解的支持!

@Componet:组件,放在类上,说明这个类被spring 管理了,就是bean

1.bean

 Component 组件
此注解等价于 <bean id="user" class="top.lostyou.dao.User"/>

2.属性如何注入

@Value("ceshi")

等价于
<property name="name" value="csshi"/>

3.衍生的注解

@Componet  有几个衍生注解,我们在web开发的时候,会按照mvc三层架构分层

  • dao         【@Repository】
  • service    【@Service】
  • controller 【@Controller】

这四个注解本质是一样的,都是代表将某个类注册到spring容器中,装配bean。

4.作用域

@Scope("singleton")
标识此类为单例模式

5.总结

xml与注解:

  • xml更加万能,适用于任何场合!维护简单方便
  • 注解  不是自己类使用不了,维护相对复杂

xml与注解的最佳实现:

  • xml用来管理bean
  • 注解用来完成属性的注入
  • 我们在使用过程中只要注意一个问题:必须要让注解生效,就需要开启注解支持
    <!-- 自动扫描文件下的包,只有被扫描的包才会生效 -->
    <context:component-scan base-package="top.lostyou"/>

    <context:annotation-config/>

 

标签:xml,Autowired,spring,bean,开发,context,注解
From: https://www.cnblogs.com/5ran2yl/p/17118117.html

相关文章

  • 2023年第 3 期《Python 测试平台开发》进阶课程(3月5号开学)
    2023年第3期《Python测试平台开发》进阶课程主讲老师:上海-悠悠上课方式:微信群视频在线教学,方便交流本期上课时间:3月5报名费:报名费3800一人(周期3个月,之前学过《pytho......
  • SpringFramework学习日记
    初识Spring,Spring的系统架构1、Spring全家桶是一个很nb的生态,我们可以用他开发自己想要的格式的功能CoreContainer是Spring的容器,java的对象交给Spring的容器来管理AO......
  • SpringMVC源码(六):Handler处理器
    在MVC请求流程中,Handler处理器依赖于HandlerMapping组件。因此在处理客户端请求时,会优先获取HandlerMapping处理器。HandlerMapping组件主要作用是根据客户端的访......
  • 健康管理检测体检评估膳食系统开发
    健康管理检测体检评估膳食系统开发智慧健康管理系统,提供个人及团体的健康状态实时监测、预警、分析报告、干预,并提供体检服务、药品销售、在线咨询等功能。支持多健管师管理......
  • 集成开发环境IDE
    IDESummaryLanguage(Mainly)IDECommentsDeveloperLicenseOSWritteninLateststablereleaseC++VisualStudioMicrosoftProprietaryWin/LinuxC++/......
  • Vue开发
    前端发展历史1、HTML(5)、CSS(3)、JavaScript(ES5、ES6):编写一个个的页面发送给后端(PHP、Python、Go、Java),后端嵌入模板语法进行渲染,渲染完数据后返回给前端方便在浏览......
  • 基于JAVA+SpringBoot+VUE的心理健康测试系统的设计与实现
    ✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战......
  • Spring+MyBatis声明事务
    一、原则在之前的开发中,事务代码都是分布在业务代码中,难以重用,调整麻烦。所以,Spring提供了声明事务,将事务代码和业务代码分离,再使用AOP实现,事务代码全部在配置文件中完成。......
  • Spring Boot、Spring Cloud、Dubbo的区别
    转载自:https://blog.csdn.net/zzhuan_1/article/details/80782236https://blog.csdn.net/qq591009234/article/details/105041847============ Springboot是Spr......
  • 注解和反射
    注解和反射1、注解(Annotation)作用:​ 不是程序本身,可以对程序作出解释​ 可以被其他程序(编译器)读取格式:​ 注解是以“@注释名”在代码中存在的,还可以添加一些参数值......