1.@Component
@Component
是所有受Spring 管理组件的通用形式,@Component注解可以放在类的头上,@Component不推荐使用。
@Component public interface BubbleMapper { }
2.@Controller
@Controller对应表现层的Bean,也就是Action
@Controller @Scope("prototype") public class UserController{ …… }
@Scope默认是单例 设置为prototype表示每次获得bean都会生成一个新的对象
3.@Service
@Service对应的是业务层Bean,例如:
@Service("userService") public class UserServiceImpl implements UserService { ……… }
4.@Resource
// 注入userService @Resource(name = "userService") private UserService userService;
@Autowired:由Spring提供 注入bean
5.@Repository
@Repository对应数据访问层Bean ,例如:
@Repository(value="userDao") public class UserDaoImpl extends BaseDaoImpl<User> { ……… }
@Repository(value="userDao")注解是告诉Spring,让Spring创建一个名字叫“userDao”的UserDaoImpl实例。
当Service需要使用Spring创建的名字叫“userDao”的UserDaoImpl实例时,就可以使用@Resource(name = "userDao")注解告诉Spring,Spring把创建好的userDao注入给Service即可。
// 注入userDao,从数据库中根据用户Id取出指定用户时需要用到 @Resource(name = "userDao") private BaseDao<User> userDao;
6.@Configuration
@Configuration 声明当前类为配置类,相当于xml形式的Spring配置(类上)
@Configuration public class SwaggerConfig {}
7.@Bean
@Bean 注解在方法上,声明当前方法的返回值为一个bean,替代xml中的方式(方法上)
@Bean public Docket docket() { return SwaggerUtils.initDocket(); }
8.@EnableScheduling
@EnableScheduling 在配置类上使用,开启计划任务的支持(类上)