Spring,Spring boot mybatis常用注解

spring注解

@Value
该注解的作用是将我们配置文件的属性读出来,有@Value(“${}”)和@Value(“#{}”)两种方式

@Value(“#{}”) 表示SpEl表达式通常用来获取IoC的bean的属性,或者调用bean的某个方法,当然还有可以表示常量。
在这里插入图片描述
@Value(“${}”) 可以获取对应属性文件(properties,yaml,yml文件)中定义的属性值

一个面像IoC容器一个面向配置文件。

配置文件的参数很多,通过"${...}"获取需要定义许多成员变量,Spring提供一个配置文件对象Environment,通过该对象的getProperty()方法获取对象的属性值,就不需要定义众多属性了。

//由于spring boot默认读取application.properties文件所以不用注解导入
@RestController
@RequestMapping("/print")
public class Test1Ctrl {

    @Value("${name}") private  String name;   //字符串注入
    @Value("${address[0]}") private String address;  //数组注入
    @Value("${person.name}") private String person;  //注入对象属性

    @Autowired
    private Environment environment;  //springboot默认读取的文件装配到配置文件对象

    @GetMapping("/name")
    public String printName(){
        return name;
    }

    @GetMapping("/list")
    protected String printList(){
        return address;
    }

    @GetMapping("/person")
    public String printPerson(){
        return person;
    }

    @GetMapping("/environment")
    public String printEnvironment(){
        return environment.getProperty("description");
    }

}

@ConfigurationProperties
将配置文件映射为一个配置类,在自动装配来获取值。

//Student.java:
@Component   //将该类注入到IoC容器
@ConfigurationProperties(prefix = "student")  //该注解实现了将配置文件映射为一个类,prefix绑定配置类的其中一个对象
public class Student {
    private String name;
    private String id;
}


//application.yaml
student:
  name: lihua
  id: s001


//controller
@RestController
@RequestMapping("/property")
public class Test2Ctrl {

    @Resource
    private Student student;   //注意将Student类注入IoC容器并通过@ConfigurationProperties注解将配置文件映射为一个bean

    @GetMapping("/student")
    protected Student printStudent(){
        return student;
    }
}

@Repository
@Repository注解是spring的注解,把当前类注册成一个bean
在这里插入图片描述
@Configuration:等同于spring的XML配置文件;用于初始化IoC容器。

@RestController 注解是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器。
@Autowired 自动装配,自动导入依赖的bean。byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。当加上(required=false)时,就算找不到bean也不报错。
@Inject: 等价于默认的@Autowired,只是没有required属性;
@Qualifier:当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用。@Qualifier限定描述符除了能根据名字进行注入。
@Resource:@Resource(name=”name”,type=”type”): 没有括号内内容的话,默认byName。与@Autowired干类似的事。
@PathVariable获取参数。
@ResponseBody该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,用于构建RESTful的api。在spring boot,比如异步获取json数据,加上@responsebody后,会直接返回json数据
@RequestMapping:处理http请求。

@Import: 用来导入其他配置类。
@ImportResource: 用来加载xml配置文件。
@Autowired: 自动导入依赖的bean.
@Service: 一般用于修饰service层的组件

@Repository: 使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。
@Conponent:注册组件。
@Bean: 用@Bean标注方法等价于XML中配置的bean。(和之前三个注解用法差不多)

@RequestMapping: @RequestMapping(“/path”)表示该控制器处理所有“/path”的UR L请求。
@RequestParam: 用在方法的参数前面。
@PathVariable: 路径变量
@ControllerAdvice: 包含@Component。可以被扫描到。统一处理异常。
@ExceptionHandler(Exception.class): 用在方法上面表示遇到这个异常就执行以下方法。

mybatis注解

@MapperScan和@Mapper是maybatis注解

mybatis的配置文件与maper映射后是可以自动识别@Select注解的,从mybatis3.4.0开始加入了@Mapper注解,目的就是为了不再写mapper映射文件。在普通项目中我们需要读取xml配置文件,构建SqlSessionFactory和SqlSession获取Mapper类,再调用方法。而@Mapper注解集成了这些功能,无需配置。注解在一个Mapper映射类上,就能完成SqlSessionFactory和SqlSession的创建,并调用getMapper()方法返回一个Mapper类。
在这里插入图片描述
@Mapper需要通过@Repository注入IoC容器,而@MapperScan是org.mybatis.spring提供的是两者的结合。指定需要指定Mapper的路径的包,会扫描包小所有mapper接口生产bean注入IoC容器,作用与spring boot主程序,就不用再每个Mapper映射类上使用@Mapper注解了。
@MapperScan

Spring boot注解

@SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。
@EnableAutoConfiguration:自动配置,个注释告诉Spring Boot根据你添加的jar依赖关系“猜测”你想要如何配置Spring。
@Configuration等同于spring的XML配置文件
@ComponentScan组件扫描,可自动发现和装配一些Bean。
@Component 可配合CommandLineRunner使用,在程序启动后执行一些基础任务.

@JsonBackReference解决嵌套外链问题,是jackson的注解。

三种不同方式读取配置文件

@SpringBootApplication //声明当前类是一个springBoot引导类,项目中只能有一个,是一个组合注解,其中有三个主要注解
@SpringBootConfiguration //声明当前类是SpringBoot应用的配置类,项目中只能有一个,它里面包含了Configuration注解
@Configuration
@EnableAutoConfiguration //开启自动配置
@ComponentScan //开启注解扫描

Spring读取jdbc.properties配置文件:

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/leyou?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456

@PropertySource指定配置文件

@Configuration //声明一个类作为配置类,代替xml文件

@PropertySource //指定外部属性文件

@Bean //声明在方法上,将方法的返回值加入Bean容器,代替标签

@Value //为属性注入值

@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfiguration {

    @Value("${jdbc.url}")
    String url;
    @Value("${jdbc.driverClassName}")
    String driverClassName;
    @Value("${jdbc.username}")
    String username;
    @Value("${jdbc.password}")
    String password;

    @Bean
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(url);
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}

//使用@Bean将DataSource注入了spring容器,因此就可以在任意位置通过@Autowired注入DataSource了。

SpringBoot默认会读取文件名为application.properties的资源文件

# 默认读取直接配置即可
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/leyou?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456

@ConfigurationProperties
自定义配置文件使用@ConfigurationProperties ,声明当前类是属性读取类,prefix="jdbc"读取属性文件中,前缀为jdbc的值。

@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
    private String url;
    private String driverClassName;
    private String username;
    private String password;
    // getters 和 setters
}

@EnableConfigurationProperties
注解@EnableConfigurationProperties(JdbcProperties.class)来声明要使用JdbcProperties这个类的对象。
使用三种方式注入:@Autowired注入、构造函数注入、@Bean方法的参数注入

//@Autowired注入
@Configuration
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfiguration {

    @Autowired
    private JdbcProperties jdbcProperties;

    @Bean
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(jdbcProperties.getUrl());
        dataSource.setDriverClassName(jdbcProperties.getDriverClassName());
        dataSource.setUsername(jdbcProperties.getUsername());
        dataSource.setPassword(jdbcProperties.getPassword());
        return dataSource;
    }

}


//构造函数注入
@Configuration
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfiguration {

    private JdbcProperties jdbcProperties;

    public JdbcConfiguration(JdbcProperties jdbcProperties){
        this.jdbcProperties = jdbcProperties;
    }

    @Bean
    public DataSource dataSource() {
        // 略
    }

}

//@Bean方法的参数注入
@Configuration
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfiguration {

    @Bean
    public DataSource dataSource(JdbcProperties jdbcProperties) {
        // ...
    }
}

方法上使用@ConfigurationProperties
如果一段属性只有一个Bean需要使用,我们无需将其注入到一个类(JdbcProperties)中。而是直接在需要的地方声明即可.

@Configuration
public class JdbcConfiguration {
    
    @Bean
    // 声明要注入的属性前缀,SpringBoot会自动把相关属性通过set方法注入到DataSource中
    @ConfigurationProperties(prefix = "jdbc")
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        return dataSource;
    }
}

直接把@ConfigurationProperties(prefix = “jdbc”)声明在需要使用的@Bean的方法上,然后SpringBoot就会自动调用这个Bean(此处是DataSource)的set方法,然后完成注入。使用的前提是:该类必须有对应属性的set方法!

静态资源springboot默认读取路径

classpath:/META-INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/

JPA注解

JPA注解

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Spring Boot是一个流行的Java开发框架,而MyBatis是一个Java持久化框架。Spring Boot可以与MyBatis很好地整合,使开发人员能够更轻松地创建Web应用程序和RESTful服务。 要在Spring Boot应用程序中使用MyBatis,首先需要将MyBatisMyBatis Spring Boot Starter添加到项目的依赖中。然后,在应用程序的配置文件中,需要配置数据源和MyBatis的会话工厂。接下来,创建Mapper接口和对应的Mapper XML文件,以定义数据库操作。最后,在需要使用数据库操作的地方,可以通过@Autowired注解来注入Mapper接口并调用其中定义的方法。 这些步骤的详细说明可以在Spring BootMyBatis的官方文档中找到。 ### 回答2: Spring Boot是一款轻量级的应用程序框架,可以帮助程序员更加方便快捷地构建基于Spring框架的Web应用程序,而MyBatis则是一个基于Java的持久层框架,能够帮助开发者更加轻松地操作数据库。在实际开发中,Spring BootMyBatis经常会被开发者共同使用,因此将两者进行整合是非常有必要的。 实现Spring BootMyBatis的整合,可以分为以下几个步骤: 1. 引入MyBatis的依赖包:可以在pom.xml文件中添加MyBatis的相关依赖,例如: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> 2. 编写MyBatis的配置文件:在resources文件夹下创建mybatis-config.xml文件,该文件中可以配置MyBatis的一些参数,例如数据库连接信息、映射文件位置等等。 3. 创建Mapper接口:可以在程序中创建Mapper接口,该接口用于定义数据库操作方法,例如查询、插入、更新等等。可以通过@Mapper注解将该接口注册为Spring Bean。 4. 创建Mapper映射文件:可以在resources文件夹下创建Mapper映射文件,该文件用于定义SQL语句以及与Mapper接口中的方法的映射关系。可以使用MyBatis的动态SQL语法来实现更加灵活的查询条件。 5. 配置MapperScannerConfigurer:可以在Spring Boot的配置类中添加MapperScannerConfigurer组件,该组件用于扫描Mapper接口所在的包路径,并将其注册为Spring Bean。 以上就是整合Spring BootMyBatis的基本步骤,通过这种方式可以使得开发者更加方便地操作数据库,提高开发效率,也能更加方便地进行单元测试和集成测试。同时,这种方式也为程序的扩展和维护提供了很好的支持。 ### 回答3: Spring Boot是一个快速搭建Web应用的框架,而MyBatis是一个优秀的DAO层框架。将两者结合起来,可以快速地构建出一个高效的Web应用程序。 整合Spring BootMyBatis时,需要引入相应的依赖包。Spring Boot中,可以使用Spring Boot MyBatis Starter来简化配置,它会自动配置好MyBatisSpring JDBC,并帮你创建DataSource和SqlSessionFactory。在pom.xml中添加如下依赖: ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency> ``` 引入该starter后,就可以在你的代码中使用MyBatis了。将MyBatisMapper配置文件放在classpath:mybatis/mapper路径下,然后使用@Mapper注解Mapper接口标记为MyBatisMapper: ```java @Mapper public interface UserMapper { User findById(Long id); } ``` 在你的代码中,你可以使用@Autowired注解将UserMapper注入到其他类中: ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User findById(Long id) { return userMapper.findById(id); } } ``` 这样就可以在业务代码中愉快地使用MyBatis了。 在MyBatis中,可以使用注解方式或xml配置方式来实现SQL映射。如果使用注解方式,需要在pom.xml中引入mybatismybatis-spring-boot-starter之外的其他依赖包。使用xml配置方式则无需引入其他依赖包。 如果需要分页查询,在pom.xml中添加pagehelper的依赖: ```xml <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.10</version> </dependency> ``` 使用PageHelper.startPage()方法来开始分页查询: ```java PageHelper.startPage(pageNum, pageSize); List<User> userList = userMapper.findAll(); PageInfo<User> pageInfo = new PageInfo<>(userList); return pageInfo; ``` 总之,集成Spring BootMyBatis可以快速地构建高效的Web应用程序。而MyBatis注解和XML配置使得SQL映射更加灵活和可维护。如果加上PageHelper的帮助,分页查询也很容易实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xvwen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值