Spring Boot入门(2)——常见的相关注解

自己没有学过spring,算是直接接触springboot了,所以这次把spring和springboot的相关注解记录一下,我也是刚开始学习有些理解不到位的东西还请大家多多指教。

1.spring的常见注解

spring通过把java类注册成Bean的方式来管理java类。spring其中有一个很重要的概念就是Ioc控制反转,作用就是你以前创建类是自己通过new的方式来创建,而你把java类注册成bean之后,是借助了spring这个容器,spring然后通过new的方式来创建该类。这样做的好处是减少了耦合度。你创建java类的最终目的是使用该类,用了spring之后多了一个注册的步骤,注册完之后然后才能使用他,如何通过spring使用该类,这就是注入。

  • 注册注解

  1. @Component 放在类的前面将该类注册成普通的bean,spring管理组件的通用构造形
  2. @Controller 为控制器组件类,可通过@Controller(value="")或者@Controller("")来指定bean的名字
  3. @Service 为业务逻辑按组件。此注解是组件注解的特化。它不会对 @Component 注解提供任何其他行为。您可以在服务层类中使用@Service 而不是 @Component,因为它以更好的方式指定了意图。
  4. @Repository 为DAO的组件类,这个注解是具有类似用途和功能的 @Component 注解的特化。它为 DAO 提供了额外的好处。它将 DAO 导入 IoC 容器,并使未经检查的异常有资格转换为 Spring DataAccessException。
  •  注入注解

1.@Autowired 被用来实现自动装配,可以用来标注成员变量、方法和构造函数等对象,使用@Autowired可以使spring自动搜索符合要求的bean,将其作为参数进行注入。因为@Autowired是根据类型进行注入的,所以当spring存在着多个同类型的bean时此时会发生报错。

public interface EmployeeService {

public Employee getEmployee(Long id);

}

@Service("service1")

public class EmployeeServiceImpl implements EmployeeService {

@Override

public Employee getEmployee(Long id) {

return new Employee();

}

}

@Service("service2)

public class EmployeeServiceImplll implements EmployeeService{

@Override

public Employee getEmployee(Long id) {

return new Employee();

}

}

@Controller

public class EmployeeContrallor {

@Autowired //会报错,存在着多个类型的bean

Employee employee;

}

@Qualifier("service1")和@Autowired的混合使用可以指明自动装配EmployeeServiceImpl

2.@Resource与@Autowired的作用类似。只不过@Resource默认是按照名称进行匹配的,而@Autowired是按照类型进行匹配的。@Resource有两个属性name和type。如果使用name属性是,则按照名字的方式进行注入。如果使用type类型时则按照类型的方式进行注入。如果即不指明name,也不指明type则按照名字的方式进行注入。

个人感觉就是如果sping中不存在相同类型的bean时,可以采用@Autowired注解,因为@Autowired不需要指定名称自动装配。如果spring中存在着多个相同类型的bean时,此时可以采用@Resource。

2.spring boot相关注解

1.@SpringBootApplication=@Configuration+@EnableAutoConfiguration()+@ComponentScan()。其中@Configuration标注在类上,等同于spring的XML配置文件的bean,@EnableAutoConfiguration()实现自动装配,@ComponentScan()扫描组件,自动发现和装配bean。
2.@RestController=@Controller+@ResponseBody。表示被标注的对象时REST风格的bean,并将方法的返回值填入到HTTP报文中返回给用户。
3.@Bean等价于XML文件中的bean,@Value注入spring boot配置文件application.properties配置的属性值。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值