spring注解

【Spring】Spring 深入理解注解及spring对注解的增强 1.概述 深入理解注解及spring对注解的增强 2. 什么是注解? 代码中注释大家都熟悉吧,注释是给开发者看的,可以提升代码的可读性和可维护性,但是对于java编译器和虚拟机来说是没有意义的,编译之后的字节码文件中是没有注释信息的;而注解和注释有点类似,唯一的区别就是注释是给人看的,而注解是给编译器和虚拟机看的,编译器和虚拟机在运行的过程中可以获取注解信息,然后可以根据这些注解的信息做各种想做的事情。比如:大家对@Override应该比较熟悉,就是一个注解,加在方法上,标注当前方法重写了父类的方法,当编. 阅读详情

1. 常用的注解

1.1 用于创建对象的(bean)

代替:<bean id="" class="">

  1. @Component
    作用在类上面,默认类名首字母小写作为bean的唯一标识
  2. @Controller @Service @Repository
    控制层、服务层、持久成注入,与@Component作用一样

1.2 用于给对象(bean)注入数据的

代替:<property name="" ref=""> <property name="" value="">

  1. @Autowired
    作用在类属性(变量)上面,在容器中找到类型与类属性一样的,进行注入,如果存在多个类型相同的,就以属性名作为唯一标识注入,如果属性名无法匹配到bean的id,就报错。
@Autowired
private IUserDao dao;
//先在容器中找到IUserDao,或者实现类,子类也行,如果只存在一个类型
//相同的bean,那么就直接注入,如果存在多个类型相同的bean,就以dao
//作为bean的id(唯一标识)进行匹配,如果这样还匹配不到就报错
  1. @Qualifier
    解决@Autowired的问题,如果存在多个类型相同的bean,而我们又不想改变属性的属性名,该如何注入。
@Autowired
@Qualifier(value = "userDao02")//指定要注入bean的id
private IUserDao dao;
  1. @Resource
    直接按照bean的id进行注入
@Resource(name = "userDao02")
    private IUserDao dao;
  1. @Value
    注入基本数据类型和 String 类型数据的,使用spring的el表达式,获取值${表达式}。

1.3 用于改变对象(bean)作用范围的

代替:<bean id="" class="" scope="">

  1. @Scope
    指定 bean 的作用范围。取值:singleton prototype request session globalsession

1.4 对象生命周期相关的

取代:<bean id="" class="" init-method="" destroy-method="" />

  1. @PostConstruct
    作用在初始化方法上面
  2. @PreDestroy
    作用在销毁方法上面

2. 取代配置文件的注解

使用配置类进行配置

  1. @Configuration
    指定该类为配置类,
  2. @ComponentScan
    取代:<context:component-scan base-package=“com.itzpx”/>
    指定需要扫描的包
@Configuration
@ComponentScan("com.itzpx")//扫描该包下面的spring注解
public class SpringConfiguration {
}
  1. @Bean
    该注解只能写在方法上,表明使用此方法创建一个对象,并且放入 spring 容器。
    name:给当前@Bean 注解方法创建的对象指定一个名称(即 bean 的 id)。
public class JdbcConfig {
/**
* 创建一个数据源,并存入 spring 容器中
* @return
*/
@Bean(name="dataSource")
public DataSource createDataSource() {
try {
ComboPooledDataSource ds = new ComboPooledDataSource();
ds.setUser("root");
ds.setPassword("1234");
ds.setDriverClass("com.mysql.jdbc.Driver");
ds.setJdbcUrl("jdbc:mysql:///spring_day02");
return ds;
} catch (Exception e) {
throw new RuntimeException(e);
} }
/**
* 创建一个 DBAssit,并且也存入 spring 容器中
* @param dataSource
* @return
*/
@Bean(name="dbAssit")
public DBAssit createDBAssit(DataSource dataSource) {
return new DBAssit(dataSource);
} }
  1. @PropertySource
    作用在配置类上面,用于加载.properties 文件中的配置。
    value[]:用于指定 properties 文件位置。如果是在类路径下,需要写上 classpath:
    当我们加载完配置文件后,就可以用el表达式,去取值
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
  1. @Import
    用于导入其他配置类,在引入其他配置类时,可以不用再写@Configuration 注解。当然,写上也没问题
@Configuration
@ComponentScan(basePackages = "com.itheima.spring") @Import({ JdbcConfig.class})
public class SpringConfiguration { }
@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig{
}

3. spring整合junits的注解

取代:

private IUserService service;
    @Before
    public void init(){
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        service = ac.getBean("userServiceImpl", UserServiceImpl.class);
    }

第一步:拷贝整合 junit 的必备 jar 包到 lib 目录
第二步:使用@RunWith 注解替换原有运行器
第三步:使用@ContextConfiguration 指定 spring 配置文件的位置
第四步:使用@Autowired 给测试类中的变量注入数据
结果:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
public class AccountServiceTest {
@Autowired
private IAccountService as ; }
订餐平台餐厅信息抓取:使用Python爬虫获取商家信息和用户评价 在这篇博客中,我们展示了如何使用Python爬虫抓取订餐平台上的餐厅信息和用户评价数据。通过使用requests和Selenium,我们能够有效地从静态和动态网页中提取数据,并使用pandas和matplotlib对数据进行存储和分析。未来,您可以根据需求进一步扩展功能,例如增加错误处理、增加抓取多个页面的能力,或者使用高级技术如分布式爬虫来抓取更大规模的数据。 阅读详情

相关推荐

闲人闲谈PS之十二——WBS-BOM在装备制造项目中的实战解析

本文深入解析了WBS-BOM在装备制造项目中的核心应用。针对按订单设计/生产的行业痛点,WBS-BOM作为项目专属物料清单,完美连接SAP PS与PP模块,确保MRP能基于项目进行精准物料需求计算,实现从设计到生产的全链路项目化跟踪与管理。

weixin_29284885的博客 400

Spring Batch 如何健壮可重启可追溯 SKIP/RETRY/RESTART策略的应用

前提:你已经有了一定的Spring基础 你已经可以跑动一个简单的Spring batch 的实例 参考:Spring-Batch-In-Action 参考:http://www.cnblogs.com/gulvzhe/archive/2011/10/25/2224249.html 先盗几个图 JobLauncher  指定一个   JobRepository JobLauncher 指定一

gmyzzzzz 8536

基于微信小程序的答题系统

学习视频:《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!5812)]《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

2401_83330193的博客 499

spring容器重启

点击打开链接 http://www.cnblogs.com/duanxz/p/5074584.html

java821643的博客 1133

计算机三级考试嵌入式系统重点精简汇总

第一章 嵌入式系统概论 1.1.1嵌入式系统 (1)特点:(1)专用性;(2)隐蔽性;(3)资源受限;(4)高可靠性;(5)实时性;(6)软件固化。 (2)应用:(1)冰箱、洗衣机、电饭煲、空调、摄影机、DVD播放器等;(2)数控机床、飞机、汽车、电梯、X光机、血压计等;(3)电话机、传真机、打印机、pos机、GPS导航仪、路由器等。 1.1.2嵌入式系统组成与分类 (1)逻辑组成:硬件和软件,分为处理器、存储器、I|0设备与I|O接口,数据总线; (2)处理器:分为主处理器(CPU)和协处

chemkrik的博客 1万+

基于 STM32 设计的 HC05 蓝牙音箱

本项目介绍如何使用 STM32 微控制器和 HC05 蓝牙模块设计一个简单的蓝牙音箱。该音箱可以接收来自手机或其他蓝牙设备的音频数据,并通过扬声器播放。该项目展示了如何使用 STM32 微控制器和 HC05 蓝牙模块设计一个简单的蓝牙音箱。易于实现功能实用可扩展性强如果您需要开发一个蓝牙音箱,该项目可以作为参考。

走向CTO的路上... 2472

Spring的常用注解

1)、@Autowired:自动注入: @Autowired:构造器,参数,方法,属性;都是从容器中获取参数组件的值 1)、[标注在方法位置]:@Bean+方法参数;参数从容器中获取;默认不写@Autowired效果是一样的;都能自动装配 2)、[标在构造器上]:如果组件只有一个有参构造器,这个有参构造器的@Autowired可以省略,参数位置的组件还是可以自动从容器中获取 3)、放在参数位置: 使用方法: 1)、默认优先按照类型去容器中找..

qqqqqqhhhhhh的博客 404

基于YOLOv8与UI界面的短视频内容审核系统实现与深度学习应用

YOLO(You Only Look Once)是一种用于实时物体检测的深度学习模型,它能在单次前向传播中同时完成物体检测和定位。YOLOv8是YOLO系列中的最新版本,相较于之前的版本,YOLOv8具有更高的检测精度和更快的推理速度,特别适合需要实时检测的应用场景。YOLOv8通过卷积神经网络(CNN)来提取图像中的特征,并通过多个卷积层来预测每个目标的位置和类别。该模型的优势在于其端到端的结构,使得在视频监控、自动驾驶、安防监控等实时应用中,能够实现快速且高效的目标检测。

YOLO 314

Spring容器启动(中)

容器刷新 在构造方法的初始以及配置类的注册中,大多BeanPostProcessor都只是生成了BeanDefinition,还没有完成实例化,但在AbstractApplicationContext的refresh()方法中,会进行一系列的初始化,以及对这些BeanPostProcessor进行排序。除了进行初始化之外,还会去设置一些EL表达式解析器、类型转化注册器等。 1、 刷新前工作 在构造方法中,Spring容器里面只是设置了操作系统的环境变量和JVM的环境变量,对于Web类型的Spring容器,还

sermonlizhi的博客 804

矿石生成(1)

这个提供了标准化的矿石放置配置模板简化了常见和稀有矿石的配置过程遵循了Minecraft原版的世界生成模式提高了代码的可读性和可维护性通过使用这个类,模组开发者可以更轻松地配置矿石的生成规则,而不需要每次都手动编写完整的放置修饰符列表。这种设计模式在原版Minecraft和其他大型模组中也很常见,是一种良好的编程实践。// 导入语句...// 字段和方法...包声明表明这个类位于luckymod模组的WorldGen包中,专门处理世界生成相关配置。导入语句。

qq_24992377的博客 137

model_optimizer将pi05端到端延时进一步优化到68.13ms了

目前在保持灵活性和性能之间找到一个较好的平衡。vit, llm仍然使用onnx->trt_engine的路径,量化可以通过https://github.com/NVIDIA/Model-Optimizer.git支持。同时支持通过cutedsl手写算子进行进一步优化denoise因为步数多,kernel launch多,因此完全通过手写融合算子实现,将所有steps进行一次大的cuda graph capture.

happyAnger6的专栏 60

Springboot自动重启

Springboot自动重启 为了不用每次修改代码之后都重启springboot,所以找了下自动重启springboot的方式。 Springboot提供了一个开发者工具:devtools <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>

m0_67392273的博客 1412

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Spring之注解开发

Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替xml配置文件可以简化配置,提高开发效率。

write less , do more 6321

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Spring 注解

Spring注解的使用

wo_1ca的博客 2327

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Spring——基于注解的配置

Spring注解配置 从 Spring 2.5 开始就可以使用注解来配置依赖注入。使用注解的方式使我们无需在XML中配置一个Bean引用,更加简单和方便。 注解配置默认情况下在Spring中是关闭的,我们需要在配置文件中使用&lt;context:annotation-config/&gt;激活它。 如下spring-config.xml文件: &lt;?xml version="1....

Gavin 2万+

Spring的注解 @Bean用法

随着SpringBoot的流行,基于注解式开发的热潮逐渐覆盖了基于XML纯配置的开发,而作为Spring中最核心的bean当然也能够使用注解的方式进行表示。所以本篇就来详细的讨论一下作为Spring中的Bean到底都有哪些用法。 @Bean 基础声明 Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。 S

应无所住而生其心 2万+

Spring注解

1.声明bean的注解 Spring注解 描述 @Component 组件,没有明确的角色 @Service 在业务逻辑层使用(service层) @Repository 在展现层使用,控制器的声明(C) @Controller 定义文档的主体 2.注入bean的注解 Spring注解 描述 @Autowired Spring提供的工具(由Spring的依赖注入工具(BeanPostProcess...

console_log_LGA的博客 2096

Spring 中的常用注解

Spring 作为 Java 企业级开发中最广泛使用的框架之一,以其强大的功能和灵活性为开发者提供了高效的开发体验。在 Spring 中,注解(Annotation)是其核心机制之一,它简化了配置文件的繁琐操作,通过声明的方式实现了依赖注入等功能。本篇文章将介绍 Spring 框架中一些常用的注解,并结合实际场景详细说明它们的使用方法与作用。这不仅可以帮助初学者快速掌握 Spring 的基本用法,也能为有经验的开发者提供一个参考,帮助在实际开发中更高效地使用这些工具。

栗筝i的博客 2510

Spring 注解解析

@Transactional 通过 AOP 动态代理和 事务管理器实现声明式事务管理,开发者需关注传播行为、隔离级别、异常处理等核心属性,避免同类调用、非 public 方法等失效场景。在复杂场景下,结合编程式事务可提升灵活性和可控性。

肢解生活,直达本质;凡所有相,皆是虚妄。 1782

Spring 中所有注解

Spring中的注解主要分为两类: 类级别的注解:如@Component、@Repository、@Controller、@Service以及JavaEE6的@ManagedBean和@Named注解,都是添加在类上面的类级别注解。 类内部的注解:如@Autowire、@Value、@Resource以及EJB和WebService相关的注解等,都是添加在类内部的字段或者方法上的类内部注解。 ...

weixin_44371237的博客 2541

Spring注解开发

Spring IoC注解式开发通过使用注解来简化XML配置,Spring6倡导全注解开发。注解的定义和使用包括定义注解及其属性、使用注解以及通过反射机制读取注解。常见的声明Bean的注解有@Component、@Controller、@Service和@Repository。通过反射机制,可以扫描指定包下的类,判断类上是否有特定注解,并实例化相应的对象。这种方式使得开发更加简洁和高效,减少了繁琐的XML配置。

weixin_63855746的博客 880

【Spring】Spring注解大全

1. 注解是什么? 其实 Java 的注解还是特别常见的,像平时用到的 @Override、@Deprecated 等都是注解的一种表现方式。 对于注解官方解释:为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后的某个时刻非常方便地使用这些数据。 2. 注解作用 可以书写更加干净易读的代码,简化重复的工作,比如 Spring 的注解; 另外还提供编译期类型检查,比如外汇...

小七的博客 920

Spring常用注解全集

第一个是,@Target,表明注解所修饰的对象范围,即,该注解可以用在哪里。第二个是,@Retention,表示注解被保留的时间长短,也就是注解的生命周期。

m0_73413202的博客 1344

注解及Spring系列注解

1.定义:使用@interface2.定义属性:类名+名字()3.赋默认值:default + 默认值4.修饰:使用需要的元注解注解为代码提供元数据,用于标记、约束、文档化和框架集成,可被编译器或运行时处理。熟练运用注解,可以提高开发的效率。

m0_75014903的博客 1129
上一篇: spring框架
下一篇: SpringAOP需要解决的问题
RestartJava
博客等级 码龄7年 1粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值