java学习计划

manven项目构建

注意:在使用maven构建聚合工程时,需要为每个子工程加上版本号version,此外应该先install root父工程

1.配置文件

application.yml:

  1. 数据源配置 ,使用hikaricp作为数据库连接池,性能比c3p0等一些连接池高许多;

hikari:
connection-timeout: 30000 # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 默认:30秒
minimum-idle: 5 # 最小连接数
maximum-pool-size: 20 # 最大连接数
auto-commit: true # 自动提交
idle-timeout: 600000 # 连接超时的最大时长(毫秒),超时则被释放(retired),默认:10分钟
pool-name: DateSourceHikariCP # 连接池名字
max-lifetime: 1800000 # 连接的生命时长(毫秒),超时而且没被使用则被释放(retired),默认:30分钟 1800000ms
connection-test-query: SELECT 1

2.在配置数据库连接池的时候,最大连接数与最小连接数设置有 一定规则

最大连接数和多线程一样,不是说设置越大越好,而是根据你的服务器配置来决定的。一般的,若你的服务器是4核的最大连接数设置为10为佳,若你的服务器是8核的最大连接数设置为20为佳。
最小连接数根据你程序来确定。

2.mybatis-generator-for-taobao工具:

  1. 配置正确的generatorConfig.xml,注意所在路径。
  2. 执行GeneratorDisplay.java的main方法,从数据库你想生成mapper以及对应的pojo类。

3.RestFul Web Service

1.无状态、独立性。
2.get(-> /order/{id})、post(-> /order)、put(-> /order/{id})、delete(-> /order/{id})。
3.接口示例:getStu

@Autowired
private StuMapper stuMapper;
@Transactional(propagation = Propagation.SUPPORTS)//声明事务,查询支持就行了
@Override
public Stu getStuInfo(int id) {
return stuMapper.selectByPrimaryKey(id);
}

4.注意:在使用RestFul风格时,在Application.java中需要使用

@MapperScan(basePackages = “com.kayakwise.mapper”)

4.事务机制

1.事务的注解 @EnableTransactionManagement可加可不加,因为springboot已经自动装配了。

Propagation
* REQUIRED: 使用当前的事务,如果当前没有事务,则自己新建一个事务,子方法是必须运行在一个事务中的;
* 如果当前存在事务,则加入这个事务,成为一个整体。
* 举例:领导没饭吃,我有钱,我会自己买了自己吃;领导有的吃,会分给你一起吃。
* SUPPORTS: 如果当前有事务,则使用事务;如果当前没有事务,则不使用事务。
* 举例:领导没饭吃,我也没饭吃;领导有饭吃,我也有饭吃。
* MANDATORY: 该传播属性强制必须存在一个事务,如果不存在,则抛出异常
* 举例:领导必须管饭,不管饭没饭吃,我就不乐意了,就不干了(抛出异常)
* REQUIRES_NEW: 如果当前有事务,则挂起该事务,并且自己创建一个新的事务给自己使用;
* 如果当前没有事务,则同 REQUIRED
* 举例:领导有饭吃,我偏不要,我自己买了自己吃
* NOT_SUPPORTED: 如果当前有事务,则把事务挂起,自己不适用事务去运行数据库操作
* 举例:领导有饭吃,分一点给你,我太忙了,放一边,我不吃
* NEVER: 如果当前有事务存在,则抛出异常
* 举例:领导有饭给你吃,我不想吃,我热爱工作,我抛出异常
* NESTED: 如果当前有事务,则开启子事务(嵌套事务),嵌套事务是独立提交或者回滚;
* 如果当前没有事务,则同 REQUIRED。
* 但是如果主事务提交,则会携带子事务一起提交。
* 如果主事务回滚,则子事务会一起回滚。相反,子事务异常,则父事务可以回滚或不回滚。
* 举例:领导决策不对,老板怪罪,领导带着小弟一同受罪。小弟出了差错,领导可以推卸责任。

5.springboot下实现跨域

  1. 新增一个configration类 或 在Application中加入CorsFilter和CorsConfiguration方法
@Configuration
public class CorsConfig {
    public CorsConfig() {}
    @Bean
    public CorsFilter corsFilter() {
        // 1. 添加cors配置信息
        CorsConfiguration config = new CorsConfiguration();
        config.addAllowedOrigin("http://localhost:8080");
        config.addAllowedOrigin("*");
        // 设置是否发送cookie信息
        config.setAllowCredentials(true);
        // 设置允许请求的方式
        config.addAllowedMethod("*");
        // 设置允许的header
        config.addAllowedHeader("*");
        // 2. 为url添加映射路径
        UrlBasedCorsConfigurationSource corsSource = new UrlBasedCorsConfigurationSource();
        corsSource.registerCorsConfiguration("/**", config);
        // 3. 返回重新定义好的corsSource
        return new CorsFilter(corsSource);
    }
}

添加配置后,就可以在前段调用后端接口成功了。

6.在整合日志时,需要将springboot自带的日志排除

	<groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <!--<exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>-->
    </dependency>
     <!--引入日志依赖 抽象层 与 实现层-->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.21</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.21</version>
    </dependency>

7.tomcat集群、负载均衡配置过程

1.将tomcat解压成两个目录,分别是tomcat1和tomcat2.使tomcat1使用默认配置,修改tomcat2配置即可。
tomcat解压
2.修改tomcat2配置,修改3出端口,分别加1000.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.在/etc/profile中设置环境变量
在这里插入图片描述
4.编辑catelina.sh
在这里插入图片描述
持续更新中…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值