微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

springboot笔记

springboot

原理

普通实现

集成

mybatis

添加依赖

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.3</version>
        </dependency>
        <dependency>
            <groupId>MysqL</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

自动生成数据库匹配文件

mybatis-generator插件

            <plugin>
              <groupId>org.mybatis.generator</groupId>
              <artifactId>mybatis-generator-maven-plugin</artifactId>
              <version>1.4.0</version>
            </plugin>

添加generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
  <classpathEntry location="/Users/jianghuilai/Library/Application Support/JetBrains/IntelliJIdea2020.1/jdbc-drivers/MysqL Connector/J 8/8.0.21/mysql-connector-java-8.0.21.jar" />

  <context id="DB2Tables" targetRuntime="MyBatis3">
    <jdbcConnection driverClass="com.MysqL.jdbc.Driver"
        connectionURL="jdbc:MysqL://localhost:3306/ex5"
        userId="root"
        password="">
    </jdbcConnection>

    <javaTypeResolver >
      <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>

    <javaModelGenerator targetPackage="com.example.demo3.model" targetProject="/Users/jianghuilai/IdeaProjects/sb-ex/demo3/src/main/java">
      <property name="enableSubPackages" value="true" />
      <property name="trimstrings" value="true" />
    </javaModelGenerator>

    <sqlMapGenerator targetPackage="com.example.demo3.mapper"  targetProject="/Users/jianghuilai/IdeaProjects/sb-ex/demo3/src/main/java">
      <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>

    <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo3.mapper"  targetProject="/Users/jianghuilai/IdeaProjects/sb-ex/demo3/src/main/java">
      <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

    <table schema="ex5" tableName="student">
<!--      <property name="useActualColumnNames" value="true"/>-->
      <generatedKey column="id" sqlStatement="MysqL" identity="true" />
    </table>

  </context>
</generatorConfiguration>

这里面三个generator标签javaModelGeneratorsqlMapGeneratorjavaClientGenerator
都有共同属性:targetPackage就是文件上面的package
里面的属性enableSubPackages,如果是true,那么文件就会被放到targetProject+targetPackage的路径下
javaModelGenerator生成model文件
sqlMapGenerator生成mapper.xml的
javaClientGenerator生成mapper接口的
当然不要这样子写,最好把sqlMapGenerator放到resources文件夹下,不然我们还要在pom.xml中添加resources属性
++++++++++++++++++++++++++++++++++++++++++++++++++
table标签当然就是我们需要映射的表
schema就是数据库名字,可以没有,因为我们的jdbcConnection里面表明了数据库
tableName就是必须的了,跟数据库的表明保持一致
生成的java对象的属性名是user_name=>userName,就是以_为区分的小驼峰形式

然后我们会得到相应的mapper,model,和mapper.xml文件
我们要给mapper接口添加@Mapper注解,这样子会将mapper文件以bean的形式添加spring容器
我们也可以在springboot主运行程序添加@MapperScan注解,得到所有的mapper接口
然后我们添加servicecontroller
然后在application.yml添加连接数据库的信息:

spring:
  datasource:
    url: jdbc:MysqL://localhost:3306/ex5
    username: root
    password:
    driver-class-name: com.MysqL.cj.jdbc.Driver

Redis

添加依赖:

        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>2.3.4.RELEASE</version>
        </dependency>

配置一下redis

server:
  port: 9527

spring:
  redis:
    url: redis://localhost:6379

redis的主要使用对象就是Redistemplate,使用方法如下:

    @Autowired
    private Redistemplate<Object, Object> template;

    @Override
    public Integer add(String key, String value) {
        ValueOperations<Object, Object> ops = template.opsForValue();
        ops.set(key, value);
        return 1;
    }

dubbo

dubbo配合zookeeper

macOS不要用brew下载zookeeper,会启动不了的。还是去官网下载吧

创建三个module:

  • interface
  • provider
  • consumer

在interface中添加服务接口

Provider和Consumer中添加依赖:

<!--		服务接口依赖-->
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>db-interface</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
		
<!--		dubbo依赖-->
		<!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-spring-boot-starter -->
		<dependency>
		    <groupId>org.apache.dubbo</groupId>
		    <artifactId>dubbo-spring-boot-starter</artifactId>
		    <version>2.7.8</version>
		</dependency>

<!--		zookeeper依赖-->
		<!-- https://mvnrepository.com/artifact/com.101tec/zkclient -->
		<dependency>
		    <groupId>com.101tec</groupId>
		    <artifactId>zkclient</artifactId>
		    <version>0.11</version>
		</dependency>
		<dependency>
			<groupId>org.apache.curator</groupId>
			<artifactId>curator-recipes</artifactId>
			<version>5.1.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.zookeeper</groupId>
			<artifactId>zookeeper</artifactId>
			<version>3.5.8</version>
		</dependency>

Provider:
配置一下application.yml:

server:
  port: 9527
  servlet:
    context-path: /
dubbo:
  application:
    name: db-provider
  registry:
    address: zookeeper://127.0.0.1:2181
    protocol: zookeeper

添加服务

@Component
@dubboService(interfaceClass = StduentService.class, version = "1.1.1", timeout = 9999)
public class StduentServiceImpl implements StduentService {
    @Override
    public int count() {
        return 1024;
    }
}

通过@Component放入spring容器
通过@dubboService表明这个是dubbo服务

在主启动文件添加一下注解

@EnabledubboConfig
@dubboComponentScan("com.example.dbprovider.service")

通过@EnabledubboConfig来启动yml文件中的配置
通过@dubboComponentScan("com.example.dbprovider.service")来发现dubbo服务,并且放入到注册中心

Consumer:
配置一下application.yml:

server:
  port: 9528
  servlet:
    context-path: /
dubbo:
  application:
    name: db-consumer
  registry:
    address: zookeeper://localhost:2181
    protocol: zookeeper

添加controller,调用服务:

@RestController
public class StudentController {
    @dubboReference(interfaceClass = StduentService.class,version = "1.1.1")
    private StduentService service;

    @RequestMapping("/count")
    int query(){
        return service.count();
    }

}

这里@RestController就是类似于@Controller,并且在每个方法上都添加@ResponseBody,也就是每个方法返回的都是Object
@dubboReference(interfaceClass = StduentService.class,version = "1.1.1")引用了服务,可以有属性check=true,如果为false,那么就是懒加载,就不会在一开始启动的时候就检查服务是否加载成功,在调用的时候才会加载服务

然后在主文件添加

@EnabledubboConfig

激活dubbo配置,以读取yml文件中的dubbo配置

dubbo-ssm

就是把上面的都整合到一起,没啥好说的,但还是说一下
创建三个模块:

  • interface
  • provider
  • consumer
    Provider,interface:
    给Provider添加依赖:
        <!--		dubbo-->
        <!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-spring-boot-starter -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.8</version>
        </dependency>

        <!--		zookeeper-->
        <!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper -->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.6.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>5.1.0</version>
        </dependency>


        <!--		mybatis-->
        <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.3</version>
        </dependency>
        <!--		MysqL-->
        <dependency>
            <groupId>MysqL</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!--		Redis-->
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>2.3.4.RELEASE</version>
        </dependency>

        <!--		接口-->
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>dbsm-interface</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

添加mybatis generator插件

            <!--		mybatis自动生成-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.4.0</version>
            </plugin>

将model放到interface模块下
mapper放到Provider模块下
歪日,在使用generator的时候出现了找不到接口依赖的POM文件,查了说了clean一下就好了,但是我不行,然后我自己的解决方法是把接口module也install一下就行了,但是前几天还是不需要install的,

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐