springboot笔记(一)-注解学习

一、spring相关注解

1、spring注解

1)@Repository、@Service、@Controller 、 @Component

spring对于bean的注解共有四个,@Repository、@Service、@Controller 和 @Component。其实这四个都是定义一个bean,@Repository表示Dao层、@Service业务层、@Controller表示控制层,而@Component可以表示任意含义,算是一个通用的注解。

2)@Autowire、@Qualifier、@Resource

@Autowire默认按照类型装配,默认情况下bean必须存在,如果可以不存在则可以设置required属性为fals;结合@Qualifier注解可以指定名称name; @Qualifier也可以单独使用
@Resource默认按照名称装配,可以设置name属性指定名称,不设置name则取字段当做name;如果匹配不到则按类型匹配。

public class TestServiceImpl {
	//false表示UserDao1可以为null
    @Autowired(required = false)
    @Qualifier("userDao")
    private UserDao1 userDao1; 
    //若不指定name,则按照字段userDao22222匹配
    @Resource(name="userDao2")
    private UserDao2 userDao22222; 
}

2、springboot注解

1)@SpringBootApplication

@SpringBootApplication的作用等价于同时组合使用@EnableAutoConfiguration,@ComponentScan,@SpringBootConfiguration.
@ComponentScan
@ComponentScan 对应于XML配置形式中的 context:component-scan
@ComponentScan注解就是用来自动扫描被这些注解标识的类,最终生成ioc容器里的bean.
可以通过设置@ComponentScan basePackages,includeFilters,excludeFilters属性来动态确定自动扫描范围,类型已经不扫描的类型.默认情况下:它扫描所有类型,并且扫描范围是@ComponentScan注解所在配置类包及子包的类;
建议把使用@SpringBootApplication注解的类放置在root package(官方表述)下,其他类都置在root package的子包里面,这样bean就不会被漏扫描;
@EnableAutoConfiguration
从 ClassPath下扫描所有的 META-INF/spring.factories 配置文件,并将spring.factories 文件中的 EnableAutoConfiguration 对应的配置项通过反射机制实例化为对应标注了 @Configuration 的形式的IoC容器配置类,然后注入IoC容器。@EnableAutoConfiguration是springboot实现自动化配置的核心注解,通过这个注解把spring应用所需的bean注入容器中让Spring Boot根据类路径中的jar包依赖为当前项目进行自动配置
@SpringBootConfiguration
与@Configuration作用相同,都是用来声明当前类是一个配置类.标识这个类可以使用Spring IoC容器作为bean定义的来源可以通过@Bean注解生成IOC容器管理的bean.

3、lombok 注解

常用的lombok注解如下

@Getter / @Setter:可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以指定Getter/Setter方法的访问级别。
@EqualsAndHashCode :默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以指定具体使用哪些属性。 @ToString 生成toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。

@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor:无参构造器、部分参数构造器、全参构造器

【常用】@Data:包含@ToString, @EqualsAndHashCode, 所有属性的@Getter, 所有non-final属性的@Setter和@RequiredArgsConstructor的组合,通常情况下,基本上使用这个注解就足够了。

【常用】@Budilder:可以进行Builder方式初始化。

【常用】@Slf4j:等同于:private final Logger logger = LoggerFactory.getLogger(XXX.class);简直不能更爽了!一般上用在其他java类上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值