spring常用注解及演示

简介: spring常用注解及演示

  1. @Configuration 应用于一个类,相当于建立一个applicationContext.xml文件
  2. @ComponentScan 相当于xml配置文件中的<context:component-scan base-package="cn.chenxiejia.entity"/>
  3. @Bean 相当于xml配置文件中的

@Configuration @ComponentScan("cn.chenxiejia.service")
public class SpringConfig {
@Bean(name="uu",initMethod = "init",destroyMethod = "close")
@Scope("singleton") @Lazy
public UserDao u1(){
var u = new UserDao();
return u;
}
}

  1. @Scope 此注解一般在类上,IoC是否为单例 @Scope("singleton") ,相当于 配置文件中
  2. @Import 导入其它配置类,相当于配置文件中的

@Configuration("ccc")
@ComponentScan("cn.chenxiejia.entity")
@Import(DruidConfig.class)
public class AppConfig {
@Bean(initMethod = "start",destroyMethod = "end") @Scope("singleton")
public Teacher t1(){
Teacher t = new Teacher(10,"周老师");
System.out.println(t);
return t;
}
@Bean("t2") @Scope("prototype")
public Teacher t2(){
Teacher t = new Teacher(22,"李老师");
return t;
}
}

  1. @Value注入属性值

@Value("1111")
private int id;
@Value("1.2")
private double money;
@Value("李青")
private String name;
@Value("true")
private boolean isstu;
@Value("java,php,html,mysql,php,html")
private String[] arrstr;
@Value("10,20,30,40")
private int[] arrint;
@Value("#{'java,php,html,mysql,php,html'.split(',')}")
private Set set;
@Value("#{'java,php,html,mysql,php,html'.split(',')}")
private List list;
@Value("#{{name:'lisi',age:18,is:true}}")
private Map<String,Object> map;
@Value("#{t1.name}")
private String tname;
@Value("#{student.id * 2}")
private int num;
@Autowired
private Teacher t3;
//t.properties books=php,java,javascript,html,java,java,php
@Value("${books}")
private String[] tarr;
@Value("#{'${books}'.split(',')}")
private Set tset;
//t.properties db.map={name:'wangwu',age:28,age:22,age:33,is:true}
@Value("#{${db.map}}")
private Map<String,Object> tmap;
//注入List t1 t2 teacher分别是IoC容器的bean
@Value("#{{t1,t2,teacher}}")
private Teacher[] teachers;
@Value("#{{t1,t2,teacher}}")
private List listts;

  1. @Autowired自动装配

//如果IoC容器没有,就装配null,不报错
@Autowired (required = false)
//自动装配,先根据类型,如果类型有多,再根据属性的变量名,如果没有变量名,报错。
@Autowired
public User user;
//自动装配,先根据类型,如果类型有多,再根据属性的变量名,如果没有变量名,可以指定
@Qualifier("uu")。
@Autowired @Qualifier("uu")
private UserDao userdao;

目录
相关文章
|
3天前
|
Java 开发者 Spring
Spring Framework 中的 @Autowired 注解:概念与使用方法
【4月更文挑战第20天】在Spring Framework中,@Autowired 注解是实现依赖注入(Dependency Injection, DI)的一种非常强大的工具。通过使用 @Autowired,开发者可以减少代码中的引用绑定,提高模块间的解耦能力
27 6
|
1月前
|
XML Java 数据库连接
spring boot 参数的过滤注解与实战
在Spring Boot应用中,对于入参的过滤,通常会涉及到对Web层的数据验证和处理。Spring Boot借助Spring框架提供了强大的验证框架支持,主要基于JSR-303/JSR-380(Bean Validation API)规范,以及Spring自身的@Valid或@Validated注解来实现请求参数的验证。以下是一些常见的使用案例来展示如何对参数进行过滤和验证。
28 1
|
1月前
|
Java Spring 容器
【Java】Spring如何扫描自定义的注解?
【Java】Spring如何扫描自定义的注解?
35 0
|
1月前
|
Java 测试技术 数据库
SpringBoot:@Profile注解和Spring EL
SpringBoot:@Profile注解和Spring EL
|
1月前
|
Java API 开发者
Spring中@import注解终极揭秘
在Spring框架中,@Import注解可以用来引入一个或多个组件,这些组件通常是通过@Bean注解定义的,当使用@Import注解时,实际上是在告诉Spring:“除了当前配置类中的bean定义外,还想包含另一个配置类(或多个配置类)中定义的bean。”
Spring中@import注解终极揭秘
|
2月前
|
监控 Java 调度
Spring中的任务调度:探索@Scheduled和@Schedules注解的威力
Spring中的任务调度:探索@Scheduled和@Schedules注解的威力
35 0
|
1月前
|
存储 缓存 Java
【Spring原理高级进阶】有Redis为啥不用?深入剖析 Spring Cache:缓存的工作原理、缓存注解的使用方法与最佳实践
【Spring原理高级进阶】有Redis为啥不用?深入剖析 Spring Cache:缓存的工作原理、缓存注解的使用方法与最佳实践
|
1月前
|
Java 数据库 Spring
【spring(四)】Spring事务管理和@Transactional注解
【spring(四)】Spring事务管理和@Transactional注解
|
1月前
|
Java Spring 容器
Spring中@Autowired和@Resource注解异同点
Spring中@Autowired和@Resource注解异同点
31 0
|
2月前
|
缓存 Java 数据库
优化您的Spring应用程序:缓存注解的精要指南
优化您的Spring应用程序:缓存注解的精要指南
45 0

热门文章

最新文章