通过案例说明Spring中@Component的使用
1 @Component介绍
@Component大致可以分为以下几个注解:
a.@controller 控制器(注入服务),用于标注控制层组件(如struts中的action)
b.@service 服务(注入service),用于标注业务层组件
c.@repository dao(注入dao),用于标注数据访问组件,即DAO组件
d.@component (把普通bean实体实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>),泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注
@Component,@Service,@Controller,@Repository注解的类,并把这些类纳入进spring容器中管理。
在annotaion配置注解中用@Component来表示一个通用注释用于说明一个类是一个spring容器管理的类。即就是该类已经拉入到spring的管理中了。而@Controller, @Service, @Repository是@Component的细化,这三个注解比@Component带有更多的语义,它们分别对应了控制层、服务层、持久层的类。
2 案例:实现简单的登录
使用@Controller @Service @Repository @Component @Autowired
@Autowired :当 Spring遇到一个在 setter 方法中使用的 @Autowired 注解,它会在方法中执行 byType 自动装配。
2.1 新建web项目:LoginTest
2.2 设置数据库sql语句:
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`userid` int(10) NOT NULL AUTO_INCREMENT,
`user_name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`password` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`userid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, 'Donta2', '123456');
INSERT INTO `user` VALUES (2, 'Donta445', '345666');
INSERT INTO `user` VALUES (3, 'Jerry', '01234');
INSERT INTO `user` VALUES (4, 'key', '456');
INSERT INTO `user` VALUES (5, 'book', '123');
SET FOREIGN_KEY_CHECKS = 1;
数据展示:
2.3 导入jar包4+2,log4j.properties , applicationContext.xml
Spring 的XML开发和注解开发 导入jar包是相同的