Spring框架注解大全(@各种注解详细介绍)+Lombox常用部分注解

博主也在一点一点学习,把目前掌握的注解一一给大家介绍,注解的使用场景和作用分析!

博主再次谢谢各位,本章会不断更新和补充,我有什么重要的注解遗漏的话,希望大家私信指导和补充!

下面进入正题---------↓

- 创建一个DefaultCache类然后交给spring 管理

package jwdlh;
@Component
@Scope("singleton")
@Lazy
public class DefaultCache {
	public Cache() {
	   System.out.println("cache()");
	}
	@PostConstruct
	public void init() {
		System.out.println("init()");
	}
	@PreDestroy
	public void destory() {
		System.out.println("destory");
	}
}
  1. @Component 是Spring中用于描述Bean类的一个注解。
  2. @Scope 是Spring中用于定义Bean对象作用域的一个注解,其常用的值有singleton(整个内存有一份Bean实例),prototype(每次获取都会创建新实例)等。
  3. @Lazy 注解用于描述类,其目的是告诉spring框架此类支持延迟加载。
  4. @PostConstruct 注解用于描述bean对象生命周期方法中的初始化方法,此方法会在对象的构造方法之后执行。
  5. @PreDestroy 注解用于描述Bean对象生命周期方法中的销毁方法,此方法会在对象销毁之前执行。

添加sringboot 测试类,进行bean的获取及测试

@SpringBootTest
public class DefaultCacheTests {
	@Autowired
	private DefaultCache defaultCache;
	@Test
	public void testCache() {
		System.out.println(defaultCache);
	}
}
  1. @SpringBootTest 注解用于告诉spring框架,此测试类交给spring管理。
  2. @Autowired 注解用于描述属性或相关方法(例如set方法,构造方法等),用于告诉spring容器为指定属性赋值。

定义商品业务数据层接口及业务方法

package com.cy.pj.goods.dao;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
@Mapper 
public interface GoodsDao {
	 @Delete("delete from goods where id=#{id}")
	 int deleteById(Integer id);
}
  1. @Mapper 是由MyBatis框架中定义的一个描述Mapper接口的的注解,用于告诉Spring框架此接口由底层(mybatis)创建其实现类对象,并存储到spring容器.

Lombox注解

  • @Setter 注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。

  • @Getter 使用方法同上,区别在于生成的是getter方法。 @ToString 注解在类,添加toString方法。

  • @EqualsAndHashCode 注解在类,生成hashCode和equals方法。

  • @NoArgsConstructor 注解在类,生成无参的构造方法。

  • @RequiredArgsConstructor 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。

  • @AllArgsConstructor 注解在类,生成包含类中所有字段的构造方法。

  • @Data 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。

  • @Slf4J 为了类中添加一个日志属性对象 private static final Logger log = LoggerFactory.getLogger(UserController.class);

- 代码案例分析:

@Slf4j
@Data //setter,getter,toString()
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class Goods implements Serializable{
	private static final long serialVersionUID = 6239917530570596544L;
	//private static final Logger log=LoggerFactory.getLogger(Goods.class);
	private Long id;;
	private String name;
	private String remark;
	private Date createdTime;
	public String doPrint() {
		log.info("goods.display()");
		return toString();
	}
}

测试类:

@RunWith(SpringRunner.class)
@SpringBootTest
public class LombokTests {
	 @Test
	 public void testGoods() {
		 Goods g=new Goods();
		 g.setId(1000L);
		 g.setName("spring boot");
		 g.setRemark("spring boot ...");
		 g.setCreatedTime(new Date());
		 System.out.println(g);
		 g=new Goods(200L, "lombok", "lombok...", new Date());
		 System.out.println(g);
		 g=new Goods()
				 .setId(300L)
				 .setName("framework")
				 .setRemark("framework...")
				 .setCreatedTime(new Date());
		 g.doPrint();
		 
	 }
}

以下是借鉴搜索引擎,部分我还未用到-------------------
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值