SpringBoot 常用注解 – Spring Bean 注解
摘自:https://mp.weixin.qq/s/dWIO1bfmMhVWo1ZPVIS09Q
@ComponentScan
说明:
@ComponentScan注解用于配置Spring需要扫描的被组件注解注释的类所在的包。可以通过配置其basePackages属性或者value属性来配置需要扫描的包路径。value属性是basePackages的别名。
属性:
- basePackages/value 指扫描哪写包下的组件注解。
- basePackageClasses 扫描指定的类,该类有组件注解才能被扫描到。
- useDefaultFilters 使用默认的过滤机制,常常搭配下面两个属性一起使用。
- includeFilters 扫描哪些组件。
- excludeFilters 不扫描哪些组件。
- lazyInit 由于是包扫描一次性的,那么无法单独配置哪个组件是否懒加载,因此提供该属性用于声明是否开启懒加载。
示例:
@Configuration
@ComponentScan(basePackages = {
"com.controller",
"com.dao",
"com.service"
})
public class MyConfig {
}
@Component
说明:
@Component注解用于标注一个普通的组件类,它没有明确的业务范围,只是通知Spring被此注解的类需要被纳入到Spring Bean容器中并进行管理。
@Component 有三个衍生注解:
- @Controller: 用于Controller层
- @Service: 用于业务层
- @Repository: 用于持久层
示例:
@Component
public class EncryptUserPasswordComponent{
public String encrypt(String password,String salt){
// ..
}
}
@Service
说明:
@Service注解是@Component的一个延伸(特例),它用于标注业务逻辑类。与@Component注解一样,被此注解标注的类,会自动被Spring所管理。
示例:
public interface UserService{
User createUser(User user);
}
@Service("userService")
public class UserServiceImpl implements UserService{
@Autowired
private UserRepository userRepository;
@Override
public User createUser(User user){
return userRepository.save(user);
}
}
@RestController
@RequestMapping("/users")
public class UserController{
@Autowired
private UserService userService;
@PostMapping
public User createUser(aRequestBody User user){
return userService.createUser(user);
}
}
@Repository
说明:
@Repository注解也是@Component注解的延伸,与@Component注解一样,被此注解标注的类会被Spring自动管理起来,@Repository注解用于标注DAO层的数据持久化类。
示例:
@Entity
@Table(name="t_user")
public class User{
@ld
@CoLumn(name="USER_ID")
private Long id;
// ...
}
@Repository
public interface UserRepository extends JpaRepository<User,Long>{
// ...
}
更多推荐
SpringBoot 常用注解 -- Spring Bean 注解
发布评论