Commit 06008f90 authored by liaozan's avatar liaozan 🏀

Initial Commit

parents
# maven ignore
target/
*.jar
!.mvn/wrapper/*
*.war
*.zip
*.tar
*.tar.gz
.flattened-pom.xml
# eclipse ignore
.settings/
.project
.classpath
# idea ignore
.idea/
*.ipr
*.iml
*.iws
# temp ignore
*.log*
*.cache
*.diff
*.patch
*.tmp
# system ignore
.DS_Store
Thumbs.db
# log
logs
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.schbrain</groupId>
<artifactId>schbrain-initializer</artifactId>
<version>${revision}</version>
</parent>
<artifactId>initializer-api-impl</artifactId>
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
<dependencies>
<dependency>
<groupId>com.schbrain</groupId>
<artifactId>initializer-api</artifactId>
</dependency>
<dependency>
<groupId>com.schbrain</groupId>
<artifactId>initializer-service</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.schbrain</groupId>
<artifactId>schbrain-initializer</artifactId>
<version>${revision}</version>
</parent>
<artifactId>initializer-api</artifactId>
<dependencies>
<dependency>
<groupId>com.schbrain</groupId>
<artifactId>initializer-common</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.schbrain</groupId>
<artifactId>schbrain-initializer</artifactId>
<version>${revision}</version>
</parent>
<artifactId>initializer-common</artifactId>
<dependencies>
<dependency>
<groupId>com.schbrain.common</groupId>
<artifactId>common</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.schbrain</groupId>
<artifactId>schbrain-initializer</artifactId>
<version>${revision}</version>
</parent>
<artifactId>initializer-dao</artifactId>
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
<dependencies>
<dependency>
<groupId>com.schbrain</groupId>
<artifactId>initializer-common</artifactId>
</dependency>
<dependency>
<groupId>com.schbrain.framework</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.schbrain.initializer.dao.entity;
import com.schbrain.framework.autoconfigure.mybatis.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author liaozan
* @since 2022/8/9
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class Entity extends BaseEntity {
private String name;
}
\ No newline at end of file
package com.schbrain.initializer.dao.entity;
import com.schbrain.framework.autoconfigure.mybatis.base.BaseEntityWithLogicDelete;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author liaozan
* @since 2022/8/27
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class EntityWithLogicDelete extends BaseEntityWithLogicDelete {
private String name;
}
\ No newline at end of file
package com.schbrain.initializer.dao.mapper;
import com.schbrain.framework.autoconfigure.mybatis.base.BaseMapper;
import com.schbrain.initializer.dao.entity.Entity;
import org.apache.ibatis.annotations.Mapper;
/**
* @author liaozan
* @since 2022/8/9
*/
@Mapper
public interface EntityMapper extends BaseMapper<Entity> {
}
\ No newline at end of file
package com.schbrain.initializer.dao.mapper;
import com.schbrain.framework.autoconfigure.mybatis.base.BaseMapper;
import com.schbrain.initializer.dao.entity.EntityWithLogicDelete;
import org.apache.ibatis.annotations.Mapper;
/**
* @author liaozan
* @since 2022/8/9
*/
@Mapper
public interface EntityWithLogicDeleteMapper extends BaseMapper<EntityWithLogicDelete> {
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.schbrain</groupId>
<artifactId>schbrain-initializer</artifactId>
<version>${revision}</version>
</parent>
<artifactId>initializer-service</artifactId>
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
<dependencies>
<dependency>
<groupId>com.schbrain.common</groupId>
<artifactId>common-util</artifactId>
</dependency>
<dependency>
<groupId>com.schbrain</groupId>
<artifactId>initializer-dao</artifactId>
</dependency>
<dependency>
<groupId>com.schbrain.framework</groupId>
<artifactId>cache-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.schbrain.framework</groupId>
<artifactId>oss-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.schbrain.framework</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.schbrain.initializer.service;
import com.schbrain.framework.autoconfigure.mybatis.base.BaseService;
import com.schbrain.initializer.dao.entity.Entity;
/**
* @author liaozan
* @since 2022/8/9
*/
public interface EntityService extends BaseService<Entity> {
}
\ No newline at end of file
package com.schbrain.initializer.service;
import com.schbrain.framework.autoconfigure.mybatis.base.BaseService;
import com.schbrain.initializer.dao.entity.EntityWithLogicDelete;
/**
* @author liaozan
* @since 2022/8/9
*/
public interface EntityWithLogicDeleteService extends BaseService<EntityWithLogicDelete> {
}
\ No newline at end of file
package com.schbrain.initializer.service.impl;
import com.schbrain.framework.autoconfigure.mybatis.base.BaseServiceImpl;
import com.schbrain.initializer.dao.entity.Entity;
import com.schbrain.initializer.dao.mapper.EntityMapper;
import com.schbrain.initializer.service.EntityService;
import org.springframework.stereotype.Service;
/**
* @author liaozan
* @since 2022/8/9
*/
@Service
public class EntityServiceImpl extends BaseServiceImpl<EntityMapper, Entity> implements EntityService {
}
\ No newline at end of file
package com.schbrain.initializer.service.impl;
import com.schbrain.framework.autoconfigure.mybatis.base.BaseServiceImpl;
import com.schbrain.initializer.dao.entity.EntityWithLogicDelete;
import com.schbrain.initializer.dao.mapper.EntityWithLogicDeleteMapper;
import com.schbrain.initializer.service.EntityWithLogicDeleteService;
import org.springframework.stereotype.Service;
/**
* @author liaozan
* @since 2022/8/9
*/
@Service
public class EntityWithLogicDeleteServiceImpl extends BaseServiceImpl<EntityWithLogicDeleteMapper, EntityWithLogicDelete> implements EntityWithLogicDeleteService {
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.schbrain</groupId>
<artifactId>schbrain-initializer</artifactId>
<version>${revision}</version>
</parent>
<artifactId>initializer-web</artifactId>
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
<dependencies>
<dependency>
<groupId>com.schbrain</groupId>
<artifactId>initializer-api-impl</artifactId>
</dependency>
<dependency>
<groupId>com.schbrain.common</groupId>
<artifactId>web-common</artifactId>
</dependency>
<dependency>
<groupId>com.schbrain.framework</groupId>
<artifactId>logger-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.openjdk.jol</groupId>
<artifactId>jol-core</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.schbrain.maven.plugin</groupId>
<artifactId>integration-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.schbrain.initializer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
\ No newline at end of file
package com.schbrain.initializer.web.controller;
import cn.hutool.core.util.RandomUtil;
import com.schbrain.framework.autoconfigure.mybatis.base.BaseEntity;
import com.schbrain.framework.autoconfigure.mybatis.base.BaseService;
import com.schbrain.initializer.dao.entity.Entity;
import com.schbrain.initializer.dao.entity.EntityWithLogicDelete;
import com.schbrain.initializer.service.EntityService;
import com.schbrain.initializer.service.EntityWithLogicDeleteService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
/**
* @author liaozan
* @since 2022/8/9
*/
@SuppressWarnings("DuplicatedCode")
@RestController
public class EntityController {
@Autowired
private EntityService entityService;
@Autowired
private EntityWithLogicDeleteService entityWithLogicDeleteService;
@GetMapping("/testOOM")
public List<byte[]> testOOM() {
List<byte[]> bytes = new ArrayList<>();
for (int i = 0; i < 10000; i++) {
bytes.add(new byte[1024 * 1024]);
}
return bytes;
}
@GetMapping("/entity")
public void entity() {
Entity entity = new Entity();
entity.setName(RandomUtil.randomNumbers(10));
entity.setId(null);
entityService.save(entity);
entity = entityService.getById(entity.getId());
entity.setName(null);
entityService.updateByIdWithNull(entity);
entityService.lambdaUpdate().eq(BaseEntity::getId, entity.getId()).remove();
entity.setName(RandomUtil.randomNumbers(10));
doOperation(entity, entityService);
}
@GetMapping("/entity_with_logic_delete")
public void entityWithLogicDelete() {
EntityWithLogicDelete entity = new EntityWithLogicDelete();
entity.setName(RandomUtil.randomNumbers(10));
entity.setId(null);
entityWithLogicDeleteService.save(entity);
entity = entityWithLogicDeleteService.getById(entity.getId());
entity.setName(null);
entityWithLogicDeleteService.updateByIdWithNull(entity);
entityWithLogicDeleteService.lambdaUpdate().eq(BaseEntity::getId, entity.getId()).remove();
entity.setName(RandomUtil.randomNumbers(10));
doOperation(entity, entityWithLogicDeleteService);
}
private <T extends BaseEntity> void doOperation(T entity, BaseService<T> service) {
entity.setId(null);
service.save(entity);
service.removeById(entity.getId());
entity.setId(null);
service.save(entity);
service.removeBatchByIds(List.of(entity.getId()));
entity.setId(null);
service.save(entity);
service.removeByMap(Map.of("id", entity.getId()));
}
}
\ No newline at end of file
spring:
application:
name: schbrain-initializer
apollo:
bootstrap:
namespaces: application,redis-common,jdbc-common,eureka-common
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.schbrain.framework</groupId>
<artifactId>schbrain-parent</artifactId>
<version>1.0.7-SNAPSHOT</version>
</parent>
<groupId>com.schbrain</groupId>
<artifactId>schbrain-initializer</artifactId>
<packaging>pom</packaging>
<version>${revision}</version>
<properties>
<revision>1.0.0-SNAPSHOT</revision>
<jol-core.version>0.16</jol-core.version>
</properties>
<modules>
<module>initializer-api</module>
<module>initializer-api-impl</module>
<module>initializer-common</module>
<module>initializer-dao</module>
<module>initializer-service</module>
<module>initializer-web</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.schbrain</groupId>
<artifactId>initializer-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.schbrain</groupId>
<artifactId>initializer-api-impl</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.schbrain</groupId>
<artifactId>initializer-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.schbrain</groupId>
<artifactId>initializer-dao</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.schbrain</groupId>
<artifactId>initializer-service</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.openjdk.jol</groupId>
<artifactId>jol-core</artifactId>
<version>${jol-core.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment