启动注解扫描,加载类中配置的注解项,配置applicationContext.xml文件
配置bean
之前xml的配置方式 <bean id="customerDao" class="com.example.CustomerDaoImpl"
@Component作用:相当于使用bean标签,属性value可省略不写,不写的时候,默认是类名首字母小写
由@Component注解衍生了其他三个注解: @Controller@Service @Repository,作用一样的
@Controller一般用于表现层(控制层)的注解
@Service 一般用于业务层的注解
@Repository一般用于持久层的注解
注入属性
@Autowired自动按照类型注入,如果对应类型的bean是唯一的,自动注入成功,如果是@Autowired注解,get,set方法可以省略不写
@Qualifier("customerDao")在自动按照类型注入的基础上,再按照bean的id来注入
@Qualifier注解和@Autowired需要搭配一起使用
@Resource(name = "customerDao")
@Value("小明")
private Stringname;//字符串和基本数据类型,基本类型包装类,可以使用@Value,直接注入值
@Scope
@Scope 用于设置bean的范围,singleton(默认的,使用最多的) prototype request session "global session"
@Component和 @Bean 的区别
@Component注解加在类的上面,表明当前类作为组件,并告知Spring容器为当前类创建bean对象
@Bean加在方法的上面,告诉Spring容器当前方法会返回一个bean对象,将这个对象注册为Spring应用上下文的bean
@Component和@Bean目的是一样的,都是将bean对象注册到Spring容器中
不同的是@Component是用在类上的 @Bean是用在方法上的
@Component(包括@Controller,@Service,@Repository)通过类路径扫描自动装配到Spring容器中
@Bean要求方法的返回值是需要bean对象的类型,在方法内部设置对象的属性,并返回对应的对象
类注解
@Configuration //@Configuration 用于定义配置类,一般可以用来替换spring的.xml配置文件
@ComponentScan("com.oaec") //组件扫描,相当于
@PropertySource("classpath:mybatis-spring.properties") //使用@PropertySource注解加载配置文件
@Import({JDBCConfig.class,MyBatisConfig.class}) //导入JDBCConfig.class,MyBatisConfig.class
一 此模块的基本结构
二 mybatis-spring.xml文件
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/spring_mybatis?useUnicode=true&serverTimezone=PRC&characterEncoding=utf-8&useSSL=false
jdbc.username=root
jdbc.password=root
三 JDBCConfig类com.oaec.config包下面的
四 MybatisConfig类 com.oaec.config包下的
五 SpringConfig类的配置
六 com.oaec.dao包下的AccountDao接口
七 com.oaec.service层的AccountService接口
AccountServiceImpl实现AccountService接口