美文网首页
SpringBoot的入门

SpringBoot的入门

作者: Butif_D | 来源:发表于2018-09-04 17:52 被阅读0次

笔记:整合freemarker && mybatis + abel533通用mapper + pagehelper分页助手 && 整合Redis && 整合ActivMQ && 读取核心 及 自定义配置文件
应用服务器:jetty , tomcat , websphere , weblogic , jboss

spring的组件轻,配置重

Spring Boot 简化了基于Spring的应用开发,只需要“run”就能创建一个独立的、生产级别的Spring应用

Spring Boot 主要目标是:
?为所有 Spring 的开发提供一个从根本上更快的入门体验
?开箱即用,但通过自己设置参数,即可快速摆脱这种方式。
?提供了一些大型项目中常见的非功能性特性,如内嵌服务器、安全、指标,健康检测、外部化配置等
?绝对没有代码生成,也无需 XML 配置。

A/:引导类的注解:
1.@SpringBootApplication注解里封装了以下的注解:
@Configuration:用于定义一个配置类
@EnableAutoConfiguration :Spring Boot 会自动根据你jar 包的依赖来自动配置项目。
@ComponentScan:告诉Spring 哪个packages 的用注解标识的类会被spring
自动扫描并且装入bean 容器。默认在当前的引导类所在包以及子包下扫描。(带有@controller @service @Component,@repository)

2.整合mybatis的注解
    @MapperScan(basePackages = "")//mapper扫描
    
3.整合redies || ActiveMQ 使用注解@EnableCaching开启缓存  持久类实现序列化Serializable

4.整合ActivMQ
    //创建一个目的地交给spring管理
    @Bean
    public Queue queue() {
        return new ActiveMQQueue("itcast.queue");
    }
    
    对象jmsTemplate  发送消息
    
    // 接受消息方法的注解
    @JmsListener(destination = "itcast.queue")

B/:展示类的注解:
@RestController注解: 相当于同时使用了@Controller和@ResponseBody注解;

D/:springBoot对jsp支持不强,对模板的引擎的支持很强大:freeamrker,thymeleaf。

E/:myBatis的整合:
Mapper的接口的注解:
@Mapper:声明Mapper接口
@Select:声明这个接口所需要使用的sql,当然,有查询的注解,肯定就有增删改的注解。

F/:注解实现redis开发
1.服务类方法注解:@Cacheable注解实现缓存添加&&使用
@CacheEvict实现缓存清理

2.官网提供了三种接口RedisConnectionFactory, StringRedisTemplate 和 RedisTemplate,如下:直接注入
    @Autowired
    private RedisTemplate<String, String>redisTemplate;

G/:整合ActivMQ
1.Spring Boot中内嵌了ActiveMQ服务,加入依赖后可以直接使用

2.controller中  直接注入:
    org.springframework.jms.core.JmsTemplate;   发送者;
    javax.jms.Destination;                      接受者

3.使用外部的ActiveMQ 只需要在application.properties 中添加配置
H/: **
    读取核心配置文件  及  自定义配置文件
    1.读取核心配置:
        1.1:    
            org.springframework.core.env.Environment
            @Resource
            private Environment env;
                env.getProperty("~~")
                env.getProperty("~~")
        1.2:注解:
            @Value("${~~}")
            String ~~;
    
    
2.自定义配置文件
    1.
    
        自定义配置 ~~.properties  
        需要添加依赖spring-boot-configuration-processor
    
        @ConfigurationProperties(prefix = "配置文件配置项的前缀")eg:jdbc.username : jdbc
        @PropertySource(value="classpath:配置加载属性文件的位置" )
        @Component//自动装配加入spring容器中管理
        
        需要一个bean来封装自定义的配置文件配置项后缀-->eg:jdbc.username : String username

I/:打jar包
添加spring-boot-maven-plugin依赖;执行:packages


--> 在springBoot中的application.properties 是作为springboot默认加载的配置文件存在。

    #端口配置
    server.port=8888

    1.#freeamrker配置:
    spring.freemarker.template-loader-path=classpath:~~
    spring.freemarker.suffix=.ftl
    
    2.#连接池
    spring.datasource.driverClassName=~~
    spring.datasource.url=~~
    spring.datasource.username=~~
    spring.datasource.password=~~
    
    3.#spring集成Mybatis环境
    #pojo别名扫描包
    mybatis.type-aliases-package=com.butif...
    #加载Mybatis核心配置文件
    mybatis.mapper-locations=classpath:mapper/*Mapper.xml
    mybatis.config-location=classpath:mybatis/SqlMapConfig.xml
    #配置连接池,还需要在pom.xml中加入该连接池的依赖
    #spring.datasource.type=~~
    
    
    4.#Redis 单机
    spring.redis.host=192.168.37.161
    spring.redis.port=6379
    
    5.#Redis 集群
    spring.redis.cluster.nodes=192.168.37.161:7001,
        192.168.37.161:7002,192.168.37.161:7003,
        192.168.37.161:7004,192.168.37.161:7005,192.168.37.161:7006
    
    6.#ActiveMQ
    spring.activemq.broker-url=tcp://192.168.37.161:61616

--> mybatis/SqlMapConfig.xml:中加载通用Mapper及分页助手的配置

<?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
        <configuration>
            <plugins>
                <!--分页助手-->
                <plugin interceptor="com.github.pagehelper.PageHelper">
                    <property name="dialect" value="mysql"/>
                    <!-- 该参数默认为false -->
                    <!-- 设置为true时,使用RowBounds分页会进行count查询 -->
                    <property name="rowBoundsWithCount" value="true"/>
                </plugin>
                <!--通用的Mapper-->
                <plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor">
                    <!--主键自增回写方法,默认值MYSQL,详细说明请看文档 -->
                    <property name="IDENTITY" value="MYSQL"/>
                    <!--通用Mapper接口,多个通用接口用逗号隔开 -->
                    <property name="mappers" value="com.github.abel533.mapper.Mapper"/>
                </plugin>
            </plugins>
        </configuration>
    
    

--> 一个小Demo所需的依赖:

    <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>~~</version>
       <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <dependencies>
       <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
       </dependency>

       <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
       </dependency>
    </dependencies>
    
    <!--freemarker依赖启动器-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-freemarker</artifactId>
    </dependency>

    
    <!--Spring Boot应用只是普通的Java应用,所以JVM热交换(hot-swapping)也能开箱即用。
    spring-boot-devtools 模块也支持应用快速重启(restart)。-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    </dependency>
    
    <!-- SpringBoot的Mybatis启动器 -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>~~</version>
    </dependency>
    
    <!--数据库驱动依赖-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>
    
    <!-- 通用Mapper -->
    <dependency>
        <groupId>com.github.abel533</groupId>
        <artifactId>mapper</artifactId>
        <version>~~</version>
    </dependency>
    <!-- 分页助手 -->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>~~</version>
    </dependency>
    <dependency>
        <groupId>com.github.jsqlparser</groupId>
        <artifactId>jsqlparser</artifactId>
        <version>~~</version>
    </dependency>

    <!--加入spring data redis-->
    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    
    <!-- 配置ActiveMQ启动器 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-activemq</artifactId>
    </dependency>
    
    <!--自定义配置文件的依赖  -->
    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-configuration-processor</artifactId>
       <optional>true</optional>
    </dependency>
    
    <!-- 打jar包 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

相关文章

网友评论

      本文标题:SpringBoot的入门

      本文链接:https://www.haomeiwen.com/subject/kulnwftx.html