spring
mybatisplus
1.扫描实体,通过反射抽取把实体抽取出来,再去分析操作的表是谁,我们需要操作的实体类中的属性是谁(也就是表中的字段)
2.再去生成相应的sql语句,然后注入到myb容器当中
spring
@SpringBootTest
对ioc容器所管理的一些组件进行自动装配
@MapperScan("com.atguigu.mybatisplus.mapper")
在启动类上加上, 就可以将指定的包下面所有的mapper接口所动态生成的代理类交给ioc容器来进行管理,
在测试类中就可以自动装配usermapper对象1
@Configuration详解,功能:将想要的组件添加到容器中
对比以前原生spring添加组件的区别
如果是以前的原生spring,想要将组件添加到容器中
1.需要在resources目录下创建一个xml配置文件
2.创建bean标签
现在的Spring Boot已经不需要向以前一样了,有一个注解@Configuration(翻译:配置)可以供使用
1.创建一个类。
2.使用注解@Configuration,告诉Spring Boot这是一个配置类。
这个时候在类里边不能写bean标签了需要使用@bean注解,想要构建出user和pet对象需要自己将它创造出来。
@bean:给容器中添加组件,以方法名作为组件的id。返回类型为组件类型,返回的值,就是组件在容器中的实例
@Bean表示方法产生一个由Spring管理的bean,属性的名称语义与Spring XML中的 标签配置的一样
@Service注解用于类上,标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中,不需要再在
applicationContext.xml文件定义bean了。
在调用该service的时候只需要将该类注入接口中即可:
@Scope注解
@Scope注解的目的是用来调节作用域
@Scope("prototype")//多实例,IOC容器启动创建的时候,并不会创建对象放在容器在容器当中,当你需要的时候,需要从容器当中取该对象的时候,就会创建。
@Scope("singleton")//单实例 IOC容器启动的时候就会调用方法创建对象,以后每次获取都是从容器当中拿同一个对象(map当中)。
@Scope("request")//同一个请求创建一个实例
@Scope("session")//同一个session创建一个实例
通过将 @Qualifier 注解与我们想要使⽤的特定 Spring bean 的名称⼀起进⾏装配,Spring 框架就能从多个相同类型并满⾜装配要求
的 bean 中找到我们想要的,避免让Spring脑裂。我们需要做的是@Component或者@Bean注解中声明的value属性以确定名称。其实我
们也可以在 Formatter 实现类上使⽤ @Qualifier 注释,⽽不是在 @Component 或者 @Bean 中指定名称,也能达到相同的效果:
@Autowired
@Autowired是一种注解,可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作,@Autowired标注可以放在成员变量上,也可以放在成员变量的set方法上,也可以放在任意方法上表示,自动执行当前方法,如果方法有参数,会在IOC容器中自动寻找同类型参数为其传值。
这里必须明确:@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier使用;
@Value(“${xxxx}”)注解从配置文件读取值的用法,也就是从application.yaml文件中获取值。
1. 比如存在application.yaml文件,配置内容如下:
user:
userName: xiaozhou
sex: 女
age: 18
在使用上述配置文件时,可以直接@Value(“${user.userName}”)等等。
如果@Value(“${user.userName:xiaosun}”),指定了name的值为xiaosun,当从配置文件中获取不到userName时,则userName值为xiaosun
2. 常量注入
@Value("xiaozhou")
privat String name;
表明name的值是xiaozhou。
@ConfigurationProperties的用法
1.可以搭配@bean使用,绑定3方属性
@Bean(name = "jydb")
@ConfigurationProperties(prefix = "spring.datasource.jydb")
public DataSource jydbDataSource() {
return DataSourceBuilder.create().build(); }
@Mapper的使用
在使用Mybatis持久层框架来操作数据库时,我们可以使用@Mapper注解和@MapperScan注解来将Mapper接口类交给Sprinig进行管理。
优点:粒度更细
缺点:直接在Mapper接口类中加@Mapper注解,需要在每一个mapper接口类中都需要添加@Mapper注解,较为繁琐
@Select注解的目的是为了取代xml中的select标签,只作用于方法上面。利用注解开发就不需要mapper.xml映射文件了 .
1、我们在我们的接口中添加注解
//查询全部用户@Select("select id,name,pwd password from user")public List<User> getAllUser();
2、在mybatis的核心配置文件中注入
<mappers> <mapper class="com.kuang.mapper.UserMapper"/>mappers>
@Scheduled
作用:spring定时器(定时执行一次或定时轮询执行一段代码)
使用场景:注解在方法上

浙公网安备 33010602011771号