Showing preview only (604K chars total). Download the full file or copy to clipboard to get everything.
Repository: suisui2019/springboot-study
Branch: master
Commit: 13083fe6fa2e
Files: 299
Total size: 505.8 KB
Directory structure:
gitextract_bd2aiknn/
├── README.md
├── activemq-demo/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── config/
│ │ │ │ └── ActivemqConfig.java
│ │ │ └── controller/
│ │ │ ├── QueueCustomerController.java
│ │ │ ├── SendController.java
│ │ │ └── TopicCustomerController.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── exception-demo/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── ExceptionDemoApplication.java
│ │ │ ├── controller/
│ │ │ │ └── DemoController.java
│ │ │ └── util/
│ │ │ ├── GlobleExceptionHandler.java
│ │ │ └── Result.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── ExceptionDemoApplicationTests.java
├── filter-demo/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── config/
│ │ │ │ └── WebConfig.java
│ │ │ ├── controller/
│ │ │ │ └── DemoController.java
│ │ │ └── filter/
│ │ │ ├── MyFilter1.java
│ │ │ └── MyFilter2.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── jpa-demo/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── SpringBootStudyJpaApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── entity/
│ │ │ │ └── User.java
│ │ │ ├── repository/
│ │ │ │ └── UserRepository.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserServiceImpl.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── SpringBootStudyJpaApplicationTests.java
├── pom.xml
├── qrcode/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── QrcodeApplication.java
│ │ │ ├── controller/
│ │ │ │ └── QrCodeController.java
│ │ │ └── util/
│ │ │ └── QRCodeUtil.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── QrcodeApplicationTests.java
├── sendmail/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── mail/
│ │ └── sendmail/
│ │ ├── SendMailApplication.java
│ │ ├── controller/
│ │ │ └── MailController.java
│ │ ├── dto/
│ │ │ └── Email.java
│ │ └── service/
│ │ ├── MailService.java
│ │ └── impl/
│ │ └── MailServiceImpl.java
│ └── resources/
│ └── application.properties
├── spirng-boot-kaptcha/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── config/
│ │ │ │ ├── KaptchaConfig.java
│ │ │ │ └── WebConfig.java
│ │ │ └── controller/
│ │ │ └── KaptchaController.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── spring-boot-encry/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── springbootencry/
│ │ ├── SpringBootEncryApplication.java
│ │ ├── advice/
│ │ │ ├── DecryptRequestBodyAdvice.java
│ │ │ └── EncryResponseBodyAdvice.java
│ │ ├── controller/
│ │ │ └── TestController.java
│ │ └── util/
│ │ ├── DesUtil.java
│ │ └── Result.java
│ └── resources/
│ └── application.yml
├── spring-boot-init/
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── com/
│ │ └── example/
│ │ └── springbootinit/
│ │ └── component/
│ │ ├── ApplicationRunnerImpl.java
│ │ ├── CommandLineRunnerImpl.java
│ │ ├── PostConstructInit.java
│ │ └── TestService.java
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springbootinit/
│ └── Test.java
├── spring-boot-jwt/
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── springbootjwt/
│ │ ├── controller/
│ │ │ ├── LoginController.java
│ │ │ └── SecureController.java
│ │ ├── entity/
│ │ │ └── User.java
│ │ ├── filter/
│ │ │ └── JwtFilter.java
│ │ └── util/
│ │ └── JwtUtil.java
│ └── resources/
│ └── application.yml
├── spring-boot-log/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springbootlog/
│ │ │ ├── SpringBootLogApplication.java
│ │ │ ├── config/
│ │ │ │ └── InterceptorConfig.java
│ │ │ ├── controller/
│ │ │ │ └── TestLogController.java
│ │ │ └── interceptor/
│ │ │ └── SessionInterceptor.java
│ │ └── resources/
│ │ ├── application.yml
│ │ └── logback-spring.xml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springbootlog/
│ └── SpringBootLogApplicationTests.java
├── spring-boot-mybatis-annotation/
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── springboot/
│ │ └── mybatisannotation/
│ │ ├── config/
│ │ │ └── MybatisConfig.java
│ │ ├── controller/
│ │ │ └── UserController.java
│ │ ├── dao/
│ │ │ └── mapper/
│ │ │ ├── UserMapper.java
│ │ │ └── UserRoleMapper.java
│ │ ├── entity/
│ │ │ ├── User.java
│ │ │ └── UserRole.java
│ │ └── service/
│ │ ├── UserRoleService.java
│ │ ├── UserService.java
│ │ └── impl/
│ │ ├── UserRoleServiceImpl.java
│ │ └── UserServiceImpl.java
│ └── resources/
│ └── application.yml
├── spring-boot-mybatis-generator/
│ ├── .gitignore
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springbootmybatis/
│ │ │ └── generator/
│ │ │ ├── SpringBootMybatisGeneratorApplication.java
│ │ │ ├── dao/
│ │ │ │ ├── UserMapper.java
│ │ │ │ └── UserRoleMapper.java
│ │ │ └── entity/
│ │ │ ├── User.java
│ │ │ └── UserRole.java
│ │ └── resources/
│ │ ├── application.properties
│ │ ├── mapper/
│ │ │ ├── UserMapper.xml
│ │ │ └── UserRoleMapper.xml
│ │ └── mybatis-generator.xml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springbootmybatis/
│ └── generator/
│ └── SpringBootMybatisGeneratorApplicationTests.java
├── spring-boot-mybatis-xml/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springboot/
│ │ │ └── mybatisxml/
│ │ │ ├── SpringBootMybatisXmlApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── dao/
│ │ │ │ └── mapper/
│ │ │ │ └── UserMapper.java
│ │ │ ├── entity/
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserServiceImpl.java
│ │ └── resources/
│ │ ├── application.yml
│ │ ├── mapper/
│ │ │ └── UserMapper.xml
│ │ └── mybatis-config.xml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springboot/
│ └── mybatisxml/
│ └── SpringBootMybatisXmlApplicationTests.java
├── spring-boot-read-yml/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springbootreadyml/
│ │ │ ├── SpringBootReadYmlApplication.java
│ │ │ ├── config/
│ │ │ │ └── WxMpProperties.java
│ │ │ └── controller/
│ │ │ └── TestReadYmlController.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springbootreadyml/
│ └── SpringBootReadYmlApplicationTests.java
├── spring-boot-security/
│ ├── .gitignore
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springboot/
│ │ │ └── security/
│ │ │ ├── SpringBootSecurityApplication.java
│ │ │ ├── config/
│ │ │ │ ├── MyPasswordEncoder.java
│ │ │ │ └── WebSecurityConfig.java
│ │ │ └── controller/
│ │ │ ├── AdminController.java
│ │ │ ├── AppController.java
│ │ │ └── UserController.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springboot/
│ └── security/
│ └── SpringBootSecurityApplicationTests.java
├── spring-boot-study-base/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── study/
│ └── day01/
│ ├── Config.java
│ ├── LinuxCondition.java
│ ├── LinuxService.java
│ ├── ListService.java
│ ├── Main01.java
│ ├── WindowsCondition.java
│ └── WindowsService.java
├── spring-boot-websocket/
│ ├── .gitignore
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springboot/
│ │ │ └── websocket/
│ │ │ ├── SpringBootWebsocketApplication.java
│ │ │ ├── config/
│ │ │ │ └── WebSocketConfig.java
│ │ │ ├── controller/
│ │ │ │ └── WebSocketController.java
│ │ │ ├── dto/
│ │ │ │ └── SocketMessage.java
│ │ │ └── util/
│ │ │ └── WebSocketServer.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── static/
│ │ └── index.html
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springboot/
│ └── websocket/
│ └── SpringBootWebsocketApplicationTests.java
├── spring-cache-demo/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── aop/
│ │ │ │ └── LogRecordAspect.java
│ │ │ ├── config/
│ │ │ │ └── WebConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── entity/
│ │ │ │ └── User.java
│ │ │ ├── repository/
│ │ │ │ └── UserRepository.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserServiceImpl.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── spring-cloud-consumer-fegin/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springcloudconsumerfegin/
│ │ │ ├── SpringCloudConsumerFeginApplication.java
│ │ │ ├── controller/
│ │ │ │ └── FeginController.java
│ │ │ └── service/
│ │ │ └── IFeginService.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springcloudconsumerfegin/
│ └── SpringCloudConsumerFeginApplicationTests.java
├── spring-cloud-consumer-fegin-hystrix/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springcloudconsumerfeginhystrix/
│ │ │ ├── SpringCloudConsumerFeginHystrixApplication.java
│ │ │ ├── controller/
│ │ │ │ └── FeginHystrixController.java
│ │ │ └── service/
│ │ │ ├── UserFeginService.java
│ │ │ └── impl/
│ │ │ └── UserFeginFailBackImpl.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springcloudconsumerfeginhystrix/
│ └── SpringCloudConsumerFeginHystrixApplicationTests.java
├── spring-cloud-consumer-ribbon/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── RibbonConsumerApplication.java
│ │ │ └── controller/
│ │ │ ├── HystrixConsumerController.java
│ │ │ └── RibbonConsumerController.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── RibbonConsumerApplicationTests.java
├── spring-cloud-eureka/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── SpringCloudEurekaApplication.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── SpringCloudEurekaApplicationTests.java
├── spring-cloud-user-consumer/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── SpringCloudUserConsumerApplication.java
│ │ │ └── controller/
│ │ │ └── ConsumerController.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── SpringCloudUserConsumerApplicationTests.java
├── spring-cloud-user-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── UserServiceDemoApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ └── entity/
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ ├── DemoApplicationTests.java
│ └── Test.java
└── spring-mybatis-generator/
└── src/
└── main/
└── resources/
├── application.yml
└── mybatis-generator.xml
================================================
FILE CONTENTS
================================================
================================================
FILE: README.md
================================================
#### 本项目记录 SpringBoot和SpringCloud 学习过程中遇到的问题,下面的是我的公众号二维码图片,欢迎关注,欢迎留言,一起学习,一起进步。

### 近期文章
[一分钟带你学会利用mybatis-generator自动生成代码!](https://mp.weixin.qq.com/s/HSlmvdSsQikfJ8M99MYGNg)
[SpringBoot系列-整合Mybatis(注解方式)](https://mp.weixin.qq.com/s/toH_rCF5Sf3sPK-NPp5OhQ)
[SpringBoot系列-整合Mybatis(XML配置方式)](https://mp.weixin.qq.com/s/Ad8aKvyTgjFlzjOcadO1xQ)
[利用SpringBoot+Logback手写一个简单的链路追踪](https://mp.weixin.qq.com/s/9ozbOBxhW9yreBWH9UTFMQ)
================================================
FILE: activemq-demo/.gitignore
================================================
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
================================================
FILE: activemq-demo/.mvn/wrapper/MavenWrapperDownloader.java
================================================
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.util.Properties;
public class MavenWrapperDownloader {
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL =
"https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: : " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
================================================
FILE: activemq-demo/.mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
================================================
FILE: activemq-demo/mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
# TODO classpath?
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
wget "$jarUrl" -O "$wrapperJarPath"
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
curl -o "$wrapperJarPath" "$jarUrl"
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
================================================
FILE: activemq-demo/mvnw.cmd
================================================
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
echo Found %WRAPPER_JAR%
) else (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
echo Finished downloading %WRAPPER_JAR%
)
@REM End of extension
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
================================================
FILE: activemq-demo/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: activemq-demo/src/main/java/com/example/demo/DemoApplication.java
================================================
package com.example.demo;
import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import javax.jms.Queue;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
================================================
FILE: activemq-demo/src/main/java/com/example/demo/config/ActivemqConfig.java
================================================
package com.example.demo.config;
import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.command.ActiveMQTopic;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.jms.Queue;
import javax.jms.Topic;
/**
* ActivemqConfig配置类
*/
@Configuration
public class ActivemqConfig {
/**
* 点对点
*/
@Bean
public Queue queue() {
return new ActiveMQQueue("active.queue");
}
/**
* 发布/订阅
*/
@Bean
public Topic topic() {
return new ActiveMQTopic("active.topic");
}
}
================================================
FILE: activemq-demo/src/main/java/com/example/demo/controller/QueueCustomerController.java
================================================
package com.example.demo.controller;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class QueueCustomerController {
/*
* 监听和接收 队列消息
*/
@JmsListener(destination="active.queue")
public void readActiveQueue(String message) {
System.out.println("接受到:" + message);
}
}
================================================
FILE: activemq-demo/src/main/java/com/example/demo/controller/SendController.java
================================================
package com.example.demo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.jms.Queue;
import javax.jms.Topic;
import java.util.UUID;
/**
* 消息生产者
*/
@RestController
public class SendController {
@Autowired
private JmsMessagingTemplate jmsMessagingTemplate;
@Autowired
private Queue queue;
@Autowired
private Topic topic;
/*
* 发送 队列消息
*/
@RequestMapping("/sendQueue")
public String sendQueue() {
String message = UUID.randomUUID().toString();
// 指定消息发送的目的地及内容
this.jmsMessagingTemplate.convertAndSend(this.queue, message);
return "消息发送成功!message=" + message;
}
/*
* 发送 主题消息
*/
@RequestMapping("/sendTopic")
public String sendTopic() {
String message = UUID.randomUUID().toString();
// 指定消息发送的目的地及内容
this.jmsMessagingTemplate.convertAndSend(this.topic, message);
return "消息发送成功!message=" + message;
}
}
================================================
FILE: activemq-demo/src/main/java/com/example/demo/controller/TopicCustomerController.java
================================================
package com.example.demo.controller;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TopicCustomerController {
/*
* 监听和接收 主题消息
*/
@JmsListener(destination = "active.topic")
public void readActiveTopic1(String message) {
System.out.println("Customer1接受到:" + message);
}
/*
* 监听和接收 主题消息
*/
@JmsListener(destination = "active.topic")
public void readActiveTopic2(String message) {
System.out.println("Customer2接受到:" + message);
}
}
================================================
FILE: activemq-demo/src/main/resources/application.properties
================================================
#ӵַ
spring.activemq.broker-url=tcp://192.168.0.1:61616
#ǵԵ㣨queueô˴ĬӦfalseģôһΪtrue
spring.jms.pub-sub-domain=true
================================================
FILE: activemq-demo/src/test/java/com/example/demo/DemoApplicationTests.java
================================================
package com.example.demo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
================================================
FILE: exception-demo/.gitignore
================================================
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
================================================
FILE: exception-demo/.mvn/wrapper/MavenWrapperDownloader.java
================================================
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.util.Properties;
public class MavenWrapperDownloader {
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL =
"https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: : " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
================================================
FILE: exception-demo/.mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
================================================
FILE: exception-demo/mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
# TODO classpath?
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
wget "$jarUrl" -O "$wrapperJarPath"
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
curl -o "$wrapperJarPath" "$jarUrl"
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
================================================
FILE: exception-demo/mvnw.cmd
================================================
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
echo Found %WRAPPER_JAR%
) else (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
echo Finished downloading %WRAPPER_JAR%
)
@REM End of extension
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
================================================
FILE: exception-demo/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>exception-demo</name>
<description>统计处理异常</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: exception-demo/src/main/java/com/example/demo/ExceptionDemoApplication.java
================================================
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ExceptionDemoApplication {
public static void main(String[] args) {
SpringApplication.run(ExceptionDemoApplication.class, args);
}
}
================================================
FILE: exception-demo/src/main/java/com/example/demo/controller/DemoController.java
================================================
package com.example.demo.controller;
import com.example.demo.util.Result;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class DemoController {
/**
* 异常情况
*/
@ResponseBody
@RequestMapping(value = "/testException")
public Result testException() {
Result result = new Result(Result.RESULT_SUCCESS, "SUCCESS");
//异常
Integer.parseInt("abc");
return result;
}
/**
*正常情况
*/
@ResponseBody
@RequestMapping(value = "/testRight")
public Result testRight() {
Result result = new Result(Result.RESULT_SUCCESS, "SUCCESS");
return result;
}
}
================================================
FILE: exception-demo/src/main/java/com/example/demo/util/GlobleExceptionHandler.java
================================================
package com.example.demo.util;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
/**
* 异常全局处理类
*
* @author
**/
@Slf4j
@ControllerAdvice
public class GlobleExceptionHandler {
@ExceptionHandler(Exception.class)
@ResponseBody
public Result handlerException(HttpServletResponse response, Exception e) throws Exception {
log.info("异常信息", e);
Result result = new Result(Result.RESULT_FAIL, "error :" + e.getMessage());
return result;
}
}
================================================
FILE: exception-demo/src/main/java/com/example/demo/util/Result.java
================================================
package com.example.demo.util;
import lombok.Data;
import java.io.Serializable;
/**
* 封装返回类
*/
@Data
public class Result implements Serializable {
private static final long serialVersionUID = 1L;
public static final int RESULT_FAIL = 0;
public static final int RESULT_SUCCESS = 1;
//返回代码
private Integer code;
//返回消息
private String message;
//返回对象
private Object data;
public Result(Integer code, String message) {
this.code = code;
this.message = message;
}
public Result(Integer code, String message, Object object) {
this.code = code;
this.message = message;
this.data = object;
}
}
================================================
FILE: exception-demo/src/main/resources/application.properties
================================================
================================================
FILE: exception-demo/src/test/java/com/example/demo/ExceptionDemoApplicationTests.java
================================================
package com.example.demo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class ExceptionDemoApplicationTests {
@Test
public void contextLoads() {
}
}
================================================
FILE: filter-demo/.gitignore
================================================
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
================================================
FILE: filter-demo/.mvn/wrapper/MavenWrapperDownloader.java
================================================
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.util.Properties;
public class MavenWrapperDownloader {
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL =
"https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: : " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
================================================
FILE: filter-demo/.mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
================================================
FILE: filter-demo/mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
# TODO classpath?
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
wget "$jarUrl" -O "$wrapperJarPath"
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
curl -o "$wrapperJarPath" "$jarUrl"
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
================================================
FILE: filter-demo/mvnw.cmd
================================================
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
echo Found %WRAPPER_JAR%
) else (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
echo Finished downloading %WRAPPER_JAR%
)
@REM End of extension
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
================================================
FILE: filter-demo/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: filter-demo/src/main/java/com/example/demo/DemoApplication.java
================================================
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@SpringBootApplication
@ServletComponentScan(basePackages = "com.example.demo.filter")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
================================================
FILE: filter-demo/src/main/java/com/example/demo/config/WebConfig.java
================================================
//package com.example.demo.config;
//
//import com.example.demo.filter.MyFilter2;
//import org.springframework.boot.web.servlet.FilterRegistrationBean;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
///**
// *
// */
//@Configuration
//public class WebConfig {
//
// @Bean
// public FilterRegistrationBean testFilterRegistration() {
// FilterRegistrationBean registration = new FilterRegistrationBean(new MyFilter2());
// registration.addUrlPatterns("/test"); //
// registration.setName("myFilter2");
// return registration;
// }
//}
================================================
FILE: filter-demo/src/main/java/com/example/demo/controller/DemoController.java
================================================
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class DemoController {
/**
* test
*/
@ResponseBody
@RequestMapping(value = "/test")
public String test() {
return "OK";
}
}
================================================
FILE: filter-demo/src/main/java/com/example/demo/filter/MyFilter1.java
================================================
package com.example.demo.filter;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
@Slf4j
@WebFilter(filterName = "myFilter1", urlPatterns = "/test")
public class MyFilter1 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
log.info(filterConfig.getFilterName() + " init");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
log.info("myFilter1 begin");
try {
log.info("业务方法执行");
chain.doFilter(request, response);
} catch (Exception e) {
log.error("error!", e);
}
log.info("myFilter1 end");
}
@Override
public void destroy() {
}
}
================================================
FILE: filter-demo/src/main/java/com/example/demo/filter/MyFilter2.java
================================================
//package com.example.demo.filter;
//
//import lombok.extern.slf4j.Slf4j;
//
//import javax.servlet.*;
//import javax.servlet.annotation.WebFilter;
//@Slf4j
//public class MyFilter2 implements Filter {
// @Override
// public void init(FilterConfig filterConfig) throws ServletException {
// log.info(filterConfig.getFilterName() + " init");
// }
//
// @Override
// public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
// log.info("myFilter2 begin");
// try {
// log.info("业务方法执行");
// chain.doFilter(request, response);
// } catch (Exception e) {
// log.error("error!", e);
// }
// log.info("myFilter2 end");
// }
//
// @Override
// public void destroy() {
// }
//}
================================================
FILE: filter-demo/src/main/resources/application.properties
================================================
================================================
FILE: filter-demo/src/test/java/com/example/demo/DemoApplicationTests.java
================================================
package com.example.demo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
================================================
FILE: jpa-demo/.gitignore
================================================
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
================================================
FILE: jpa-demo/.mvn/wrapper/MavenWrapperDownloader.java
================================================
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.util.Properties;
public class MavenWrapperDownloader {
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL =
"https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: : " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
================================================
FILE: jpa-demo/.mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
================================================
FILE: jpa-demo/mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
# TODO classpath?
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
wget "$jarUrl" -O "$wrapperJarPath"
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
curl -o "$wrapperJarPath" "$jarUrl"
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
================================================
FILE: jpa-demo/mvnw.cmd
================================================
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
echo Found %WRAPPER_JAR%
) else (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
echo Finished downloading %WRAPPER_JAR%
)
@REM End of extension
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
================================================
FILE: jpa-demo/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring-boot-study-jpa</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: jpa-demo/src/main/java/com/example/demo/SpringBootStudyJpaApplication.java
================================================
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootStudyJpaApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootStudyJpaApplication.class, args);
}
}
================================================
FILE: jpa-demo/src/main/java/com/example/demo/controller/UserController.java
================================================
package com.example.demo.controller;
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@Autowired
UserService service;
/**
* 根据id 查询
*/
@RequestMapping("/getUser/{id}")
public User getUser(@PathVariable("id") Integer id) {
return service.getUser(id);
}
/**
* 根据id 删除
*/
@RequestMapping("/deleteUser/{id}")
public String deleteUser(@PathVariable("id") Integer id) {
service.deleteUser(id);
return "删除成功!";
}
}
================================================
FILE: jpa-demo/src/main/java/com/example/demo/entity/User.java
================================================
package com.example.demo.entity;
import javax.persistence.*;
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String name;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
================================================
FILE: jpa-demo/src/main/java/com/example/demo/repository/UserRepository.java
================================================
package com.example.demo.repository;
import com.example.demo.entity.User;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
/**
* 注意:
* 1.这里这里是interface,不是class
* 2.CrudRepository里面的泛型,第一个是实体类,第二个是主键的类型
*/
public interface UserRepository extends CrudRepository<User, Integer> {
@Query("from User where id =:id ")
public User getUser(@Param("id") Integer id);
}
================================================
FILE: jpa-demo/src/main/java/com/example/demo/service/UserService.java
================================================
package com.example.demo.service;
import com.example.demo.entity.User;
public interface UserService {
public User getUser(Integer id);
public void deleteUser(Integer id);
}
================================================
FILE: jpa-demo/src/main/java/com/example/demo/service/impl/UserServiceImpl.java
================================================
package com.example.demo.service.impl;
import com.example.demo.entity.User;
import com.example.demo.repository.UserRepository;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserRepository repository;
@Override
public User getUser(Integer id) {
//有两种方式:
//1.调用crudRepository的接口
// return repository.findOne(id);
//2.调用我们自己写的接口
return repository.getUser(id);
}
@Override
public void deleteUser(Integer id) {
repository.deleteById(id);
}
}
================================================
FILE: jpa-demo/src/main/resources/application.properties
================================================
#tomcatĬ϶˿ں
server.port=8090
#ԴϢ
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.0.1:3306/test
spring.datasource.username=root
spring.datasource.password=12345
#jpa
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jackson.serialization.indent_output=true
================================================
FILE: jpa-demo/src/test/java/com/example/demo/SpringBootStudyJpaApplicationTests.java
================================================
package com.example.demo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootStudyJpaApplicationTests {
@Test
public void contextLoads() {
}
}
================================================
FILE: pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>spring-boot-study</artifactId>
<packaging>pom</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>spring-boot-study</name>
<description>Demo project for Spring Boot</description>
<modules>
<module>spring-boot-study-base</module>
<module>sendmail</module>
</modules>
</project>
================================================
FILE: qrcode/.gitignore
================================================
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
================================================
FILE: qrcode/.mvn/wrapper/MavenWrapperDownloader.java
================================================
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.util.Properties;
public class MavenWrapperDownloader {
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL =
"https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: : " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
================================================
FILE: qrcode/.mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
================================================
FILE: qrcode/mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
# TODO classpath?
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
wget "$jarUrl" -O "$wrapperJarPath"
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
curl -o "$wrapperJarPath" "$jarUrl"
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
================================================
FILE: qrcode/mvnw.cmd
================================================
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
echo Found %WRAPPER_JAR%
) else (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
echo Finished downloading %WRAPPER_JAR%
)
@REM End of extension
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
================================================
FILE: qrcode/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>qrcode</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<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>
<!-- 二维码支持包 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.2.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: qrcode/src/main/java/com/example/demo/QrcodeApplication.java
================================================
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class QrcodeApplication {
public static void main(String[] args) {
SpringApplication.run(QrcodeApplication.class, args);
}
}
================================================
FILE: qrcode/src/main/java/com/example/demo/controller/QrCodeController.java
================================================
package com.example.demo.controller;
import com.example.demo.util.QRCodeUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
@Controller
public class QrCodeController {
/**
* 根据 url 生成 普通二维码
*/
@RequestMapping(value = "/createCommonQRCode")
public void createCommonQRCode(HttpServletResponse response, String url) throws Exception {
ServletOutputStream stream = null;
try {
stream = response.getOutputStream();
//使用工具类生成二维码
QRCodeUtil.encode(url, stream);
} catch (Exception e) {
e.getStackTrace();
} finally {
if (stream != null) {
stream.flush();
stream.close();
}
}
}
/**
* 根据 url 生成 带有logo二维码
*/
@RequestMapping(value = "/createLogoQRCode")
public void createLogoQRCode(HttpServletResponse response, String url) throws Exception {
ServletOutputStream stream = null;
try {
stream = response.getOutputStream();
String logoPath = Thread.currentThread().getContextClassLoader().getResource("").getPath()
+ "templates" + File.separator + "logo.jpg";
//使用工具类生成二维码
QRCodeUtil.encode(url, logoPath, stream, true);
} catch (Exception e) {
e.getStackTrace();
} finally {
if (stream != null) {
stream.flush();
stream.close();
}
}
}
}
================================================
FILE: qrcode/src/main/java/com/example/demo/util/QRCodeUtil.java
================================================
package com.example.demo.util;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.OutputStream;
import java.util.Hashtable;
/**
* QRCodeUtil 生成二维码工具类
*/
public class QRCodeUtil {
private static final String CHARSET = "utf-8";
private static final String FORMAT_NAME = "JPG";
// 二维码尺寸
private static final int QRCODE_SIZE = 300;
// LOGO宽度
private static final int WIDTH = 60;
// LOGO高度
private static final int HEIGHT = 60;
private static BufferedImage createImage(String content, String imgPath, boolean needCompress) throws Exception {
Hashtable hints = new Hashtable();
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
hints.put(EncodeHintType.CHARACTER_SET, CHARSET);
hints.put(EncodeHintType.MARGIN, 1);
BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, QRCODE_SIZE, QRCODE_SIZE,
hints);
int width = bitMatrix.getWidth();
int height = bitMatrix.getHeight();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
image.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF);
}
}
if (imgPath == null || "".equals(imgPath)) {
return image;
}
// 插入图片
QRCodeUtil.insertImage(image, imgPath, needCompress);
return image;
}
private static void insertImage(BufferedImage source, String imgPath, boolean needCompress) throws Exception {
File file = new File(imgPath);
if (!file.exists()) {
System.err.println("" + imgPath + " 该文件不存在!");
return;
}
Image src = ImageIO.read(new File(imgPath));
int width = src.getWidth(null);
int height = src.getHeight(null);
if (needCompress) { // 压缩LOGO
if (width > WIDTH) {
width = WIDTH;
}
if (height > HEIGHT) {
height = HEIGHT;
}
Image image = src.getScaledInstance(width, height, Image.SCALE_SMOOTH);
BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(image, 0, 0, null); // 绘制缩小后的图
g.dispose();
src = image;
}
// 插入LOGO
Graphics2D graph = source.createGraphics();
int x = (QRCODE_SIZE - width) / 2;
int y = (QRCODE_SIZE - height) / 2;
graph.drawImage(src, x, y, width, height, null);
Shape shape = new RoundRectangle2D.Float(x, y, width, width, 6, 6);
graph.setStroke(new BasicStroke(3f));
graph.draw(shape);
graph.dispose();
}
public static void encode(String content, String imgPath, String destPath, boolean needCompress) throws Exception {
BufferedImage image = QRCodeUtil.createImage(content, imgPath, needCompress);
mkdirs(destPath);
ImageIO.write(image, FORMAT_NAME, new File(destPath));
}
public static BufferedImage encode(String content, String imgPath, boolean needCompress) throws Exception {
BufferedImage image = QRCodeUtil.createImage(content, imgPath, needCompress);
return image;
}
public static void mkdirs(String destPath) {
File file = new File(destPath);
// 当文件夹不存在时,mkdirs会自动创建多层目录,区别于mkdir.(mkdir如果父目录不存在则会抛出异常)
if (!file.exists() && !file.isDirectory()) {
file.mkdirs();
}
}
public static void encode(String content, String imgPath, OutputStream output, boolean needCompress)
throws Exception {
BufferedImage image = QRCodeUtil.createImage(content, imgPath, needCompress);
ImageIO.write(image, FORMAT_NAME, output);
}
public static void encode(String content, OutputStream output) throws Exception {
QRCodeUtil.encode(content, null, output, false);
}
}
================================================
FILE: qrcode/src/main/resources/application.properties
================================================
================================================
FILE: qrcode/src/test/java/com/example/demo/QrcodeApplicationTests.java
================================================
package com.example.demo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class QrcodeApplicationTests {
@Test
public void contextLoads() {
}
}
================================================
FILE: sendmail/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example.mail</groupId>
<artifactId>sendmail</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>sendmail</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: sendmail/src/main/java/com/example/mail/sendmail/SendMailApplication.java
================================================
package com.example.mail.sendmail;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SendMailApplication {
public static void main(String[] args) {
//java mail发邮件是附件名过长默认会被截断,附件名显示【tcmime.29121.29517.50430.bin】,主动设为false可正常显示附件名
System.setProperty("mail.mime.splitlongparameters", "false");
SpringApplication.run(SendMailApplication.class, args);
}
}
================================================
FILE: sendmail/src/main/java/com/example/mail/sendmail/controller/MailController.java
================================================
package com.example.mail.sendmail.controller;
import com.example.mail.sendmail.dto.Email;
import com.example.mail.sendmail.service.MailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.ArrayList;
import java.util.List;
/**
* @Auther: java碎碎念
* @Description:
*/
@Controller
public class MailController {
@Autowired
private MailService mailService;
@RequestMapping(value = "/sendMail")
public String sendEmail() {
Email email_email = new Email();
List<String> addressList = new ArrayList<String>();
addressList.add("xxx@163.com");
email_email.setToAddress(addressList);
email_email.setSubject("java碎碎念-主题测试");// 主题
email_email.setContent("你好!<br><br> 测试邮件发送成功!");
// 发送邮件
mailService.sendMail(email_email);
return "ok";
}
}
================================================
FILE: sendmail/src/main/java/com/example/mail/sendmail/dto/Email.java
================================================
package com.example.mail.sendmail.dto;
import java.io.File;
import java.util.List;
/**
* Email实体类
*
* @Author: lifq
*/
public class Email {
/**
* 发件人地址(为空时自动调用配置文件中设置的发件人)
*/
// private String fromAddress;
/**
* 收件人地址
*/
private List<String> toAddress;
/**
* 抄送人地址
*/
private List<String> ccAddress;
/**
* 密送人地址
*/
private List<String> bccAddress;
/**
* 邮件主题
*/
private String subject;
/**
* 邮件内容
*/
private String content;
/**
* 附件
*/
private List<File> attachments;
public List<String> getToAddress() {
return toAddress;
}
public void setToAddress(List<String> toAddress) {
this.toAddress = toAddress;
}
public List<String> getCcAddress() {
return ccAddress;
}
public void setCcAddress(List<String> ccAddress) {
this.ccAddress = ccAddress;
}
public List<String> getBccAddress() {
return bccAddress;
}
public void setBccAddress(List<String> bccAddress) {
this.bccAddress = bccAddress;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public List<File> getAttachments() {
return attachments;
}
public void setAttachments(List<File> attachments) {
this.attachments = attachments;
}
}
================================================
FILE: sendmail/src/main/java/com/example/mail/sendmail/service/MailService.java
================================================
package com.example.mail.sendmail.service;
import com.example.mail.sendmail.dto.Email;
public interface MailService {
/**
* 发送邮件
*
* @Author: lifq
*/
public void sendMail(Email email);
}
================================================
FILE: sendmail/src/main/java/com/example/mail/sendmail/service/impl/MailServiceImpl.java
================================================
package com.example.mail.sendmail.service.impl;
import com.example.mail.sendmail.dto.Email;
import com.example.mail.sendmail.service.MailService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import java.io.File;
/**
* 邮件实现类
*
* @Auther: java碎碎念
* @Description:
*/
@Service
public class MailServiceImpl implements MailService {
@Autowired
private JavaMailSender javaMailSender;
@Value("${spring.mail.username}")
private String mailUserName;
Logger log = LoggerFactory.getLogger(MailServiceImpl.class);
/**
* 发送邮件
*
* @Author: java碎碎念
*/
public void sendMail(Email email) {
long start = System.currentTimeMillis();
try {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
//true表示需要创建一个multipart message
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
helper.setFrom(mailUserName);
helper.setTo(email.getToAddress().toArray(new String[email.getToAddress().size()]));
helper.setSubject(email.getSubject());
helper.setText(email.getContent(), true);
if (null != email.getAttachments() && email.getAttachments().size() > 0) {
for (File curFile : email.getAttachments()) {
FileSystemResource file = new FileSystemResource(curFile);
helper.addAttachment(MimeUtility.encodeWord(file.getFilename(), "utf-8", "B"), file);
}
}
log.info("邮件开始发送");
javaMailSender.send(mimeMessage);
long sendMillTimes = System.currentTimeMillis() - start;
log.info("邮件发送成功,sendTimes=" + sendMillTimes);
} catch (Exception e) {
log.error("发送html邮件时发生异常!", e);
}
}
}
================================================
FILE: sendmail/src/main/resources/application.properties
================================================
spring.mail.host = smtp.163.com
spring.mail.port = 465
spring.mail.username = xxx@163.com
spring.mail.password = xxx
spring.mail.properties.mail.smtp.auth = true
spring.mail.properties.mail.smtp.timeout = 25000
spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.smtp.starttls.enable = true
spring.mail.properties.mail.smtp.starttls.required = true
================================================
FILE: spirng-boot-kaptcha/.gitignore
================================================
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
================================================
FILE: spirng-boot-kaptcha/.mvn/wrapper/MavenWrapperDownloader.java
================================================
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.util.Properties;
public class MavenWrapperDownloader {
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL =
"https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: : " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
================================================
FILE: spirng-boot-kaptcha/.mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
================================================
FILE: spirng-boot-kaptcha/mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
# TODO classpath?
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
wget "$jarUrl" -O "$wrapperJarPath"
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
curl -o "$wrapperJarPath" "$jarUrl"
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
================================================
FILE: spirng-boot-kaptcha/mvnw.cmd
================================================
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
echo Found %WRAPPER_JAR%
) else (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
echo Finished downloading %WRAPPER_JAR%
)
@REM End of extension
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
================================================
FILE: spirng-boot-kaptcha/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 验证码 -->
<dependency>
<groupId>com.github.penggle</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: spirng-boot-kaptcha/src/main/java/com/example/demo/DemoApplication.java
================================================
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
================================================
FILE: spirng-boot-kaptcha/src/main/java/com/example/demo/config/KaptchaConfig.java
================================================
package com.example.demo.config;
import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.Properties;
/**
* KaptchaConfig
*/
@Configuration
public class KaptchaConfig implements WebMvcConfigurer {
/**
* 验证码 生成的bean
*/
@Bean
public DefaultKaptcha captchaProducer() {
DefaultKaptcha captchaProducer = new DefaultKaptcha();
Properties properties = new Properties();
properties.setProperty(Constants.KAPTCHA_IMAGE_WIDTH, "100");
properties.setProperty(Constants.KAPTCHA_IMAGE_HEIGHT, "30");
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_SIZE, "22");
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "4");
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_SPACE, "6");
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_COLOR, "black");
properties.setProperty(Constants.KAPTCHA_BORDER_COLOR, "LIGHT_GRAY");
properties.setProperty(Constants.KAPTCHA_BACKGROUND_CLR_FROM, "WHITE");
properties.setProperty(Constants.KAPTCHA_NOISE_IMPL, "com.google.code.kaptcha.impl.NoNoise");
properties.setProperty(Constants.KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy");
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_STRING, "0123456789");
properties.setProperty(Constants.KAPTCHA_SESSION_CONFIG_KEY, "checkCode");
Config config = new Config(properties);
captchaProducer.setConfig(config);
return captchaProducer;
}
}
================================================
FILE: spirng-boot-kaptcha/src/main/java/com/example/demo/config/WebConfig.java
================================================
================================================
FILE: spirng-boot-kaptcha/src/main/java/com/example/demo/controller/KaptchaController.java
================================================
package com.example.demo.controller;
import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.Producer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
@Slf4j
@Controller
@RequestMapping("/kaptcha")
public class KaptchaController {
@Autowired
private Producer captchaProducer;
@RequestMapping("/getCode")
public ModelAndView getKaptchaImage(HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setDateHeader("Expires", 0);
// Set standard HTTP/1.1 no-cache headers.
response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
// Set IE extended HTTP/1.1 no-cache headers (use addHeader).
response.addHeader("Cache-Control", "post-check=0, pre-check=0");
// Set standard HTTP/1.0 no-cache header.
response.setHeader("Pragma", "no-cache");
response.setContentType("image/jpeg");
// create the text for the image
String capText = captchaProducer.createText();
log.info("******************验证码是: " + capText + "******************");
// store the text in the session
request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);
// create the image with the text
BufferedImage bi = captchaProducer.createImage(capText);
ServletOutputStream out = response.getOutputStream();
// write the data out
ImageIO.write(bi, "jpg", out);
try {
out.flush();
} finally {
out.close();
}
return null;
}
}
================================================
FILE: spirng-boot-kaptcha/src/main/resources/application.properties
================================================
server.port=8081
================================================
FILE: spirng-boot-kaptcha/src/test/java/com/example/demo/DemoApplicationTests.java
================================================
package com.example.demo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Test
public void contextLoads() {
}
}
================================================
FILE: spring-boot-encry/.gitignore
================================================
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
================================================
FILE: spring-boot-encry/.mvn/wrapper/MavenWrapperDownloader.java
================================================
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.util.Properties;
public class MavenWrapperDownloader {
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL =
"https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: : " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
================================================
FILE: spring-boot-encry/.mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
================================================
FILE: spring-boot-encry/mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
# TODO classpath?
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
wget "$jarUrl" -O "$wrapperJarPath"
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
curl -o "$wrapperJarPath" "$jarUrl"
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
================================================
FILE: spring-boot-encry/mvnw.cmd
================================================
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
echo Found %WRAPPER_JAR%
) else (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
echo Finished downloading %WRAPPER_JAR%
)
@REM End of extension
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
================================================
FILE: spring-boot-encry/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>spring-boot-encry</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring-boot-encry</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage
gitextract_bd2aiknn/
├── README.md
├── activemq-demo/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── config/
│ │ │ │ └── ActivemqConfig.java
│ │ │ └── controller/
│ │ │ ├── QueueCustomerController.java
│ │ │ ├── SendController.java
│ │ │ └── TopicCustomerController.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── exception-demo/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── ExceptionDemoApplication.java
│ │ │ ├── controller/
│ │ │ │ └── DemoController.java
│ │ │ └── util/
│ │ │ ├── GlobleExceptionHandler.java
│ │ │ └── Result.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── ExceptionDemoApplicationTests.java
├── filter-demo/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── config/
│ │ │ │ └── WebConfig.java
│ │ │ ├── controller/
│ │ │ │ └── DemoController.java
│ │ │ └── filter/
│ │ │ ├── MyFilter1.java
│ │ │ └── MyFilter2.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── jpa-demo/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── SpringBootStudyJpaApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── entity/
│ │ │ │ └── User.java
│ │ │ ├── repository/
│ │ │ │ └── UserRepository.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserServiceImpl.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── SpringBootStudyJpaApplicationTests.java
├── pom.xml
├── qrcode/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── QrcodeApplication.java
│ │ │ ├── controller/
│ │ │ │ └── QrCodeController.java
│ │ │ └── util/
│ │ │ └── QRCodeUtil.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── QrcodeApplicationTests.java
├── sendmail/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── mail/
│ │ └── sendmail/
│ │ ├── SendMailApplication.java
│ │ ├── controller/
│ │ │ └── MailController.java
│ │ ├── dto/
│ │ │ └── Email.java
│ │ └── service/
│ │ ├── MailService.java
│ │ └── impl/
│ │ └── MailServiceImpl.java
│ └── resources/
│ └── application.properties
├── spirng-boot-kaptcha/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── config/
│ │ │ │ ├── KaptchaConfig.java
│ │ │ │ └── WebConfig.java
│ │ │ └── controller/
│ │ │ └── KaptchaController.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── spring-boot-encry/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── springbootencry/
│ │ ├── SpringBootEncryApplication.java
│ │ ├── advice/
│ │ │ ├── DecryptRequestBodyAdvice.java
│ │ │ └── EncryResponseBodyAdvice.java
│ │ ├── controller/
│ │ │ └── TestController.java
│ │ └── util/
│ │ ├── DesUtil.java
│ │ └── Result.java
│ └── resources/
│ └── application.yml
├── spring-boot-init/
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── com/
│ │ └── example/
│ │ └── springbootinit/
│ │ └── component/
│ │ ├── ApplicationRunnerImpl.java
│ │ ├── CommandLineRunnerImpl.java
│ │ ├── PostConstructInit.java
│ │ └── TestService.java
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springbootinit/
│ └── Test.java
├── spring-boot-jwt/
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── springbootjwt/
│ │ ├── controller/
│ │ │ ├── LoginController.java
│ │ │ └── SecureController.java
│ │ ├── entity/
│ │ │ └── User.java
│ │ ├── filter/
│ │ │ └── JwtFilter.java
│ │ └── util/
│ │ └── JwtUtil.java
│ └── resources/
│ └── application.yml
├── spring-boot-log/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springbootlog/
│ │ │ ├── SpringBootLogApplication.java
│ │ │ ├── config/
│ │ │ │ └── InterceptorConfig.java
│ │ │ ├── controller/
│ │ │ │ └── TestLogController.java
│ │ │ └── interceptor/
│ │ │ └── SessionInterceptor.java
│ │ └── resources/
│ │ ├── application.yml
│ │ └── logback-spring.xml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springbootlog/
│ └── SpringBootLogApplicationTests.java
├── spring-boot-mybatis-annotation/
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── example/
│ │ └── springboot/
│ │ └── mybatisannotation/
│ │ ├── config/
│ │ │ └── MybatisConfig.java
│ │ ├── controller/
│ │ │ └── UserController.java
│ │ ├── dao/
│ │ │ └── mapper/
│ │ │ ├── UserMapper.java
│ │ │ └── UserRoleMapper.java
│ │ ├── entity/
│ │ │ ├── User.java
│ │ │ └── UserRole.java
│ │ └── service/
│ │ ├── UserRoleService.java
│ │ ├── UserService.java
│ │ └── impl/
│ │ ├── UserRoleServiceImpl.java
│ │ └── UserServiceImpl.java
│ └── resources/
│ └── application.yml
├── spring-boot-mybatis-generator/
│ ├── .gitignore
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springbootmybatis/
│ │ │ └── generator/
│ │ │ ├── SpringBootMybatisGeneratorApplication.java
│ │ │ ├── dao/
│ │ │ │ ├── UserMapper.java
│ │ │ │ └── UserRoleMapper.java
│ │ │ └── entity/
│ │ │ ├── User.java
│ │ │ └── UserRole.java
│ │ └── resources/
│ │ ├── application.properties
│ │ ├── mapper/
│ │ │ ├── UserMapper.xml
│ │ │ └── UserRoleMapper.xml
│ │ └── mybatis-generator.xml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springbootmybatis/
│ └── generator/
│ └── SpringBootMybatisGeneratorApplicationTests.java
├── spring-boot-mybatis-xml/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springboot/
│ │ │ └── mybatisxml/
│ │ │ ├── SpringBootMybatisXmlApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── dao/
│ │ │ │ └── mapper/
│ │ │ │ └── UserMapper.java
│ │ │ ├── entity/
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserServiceImpl.java
│ │ └── resources/
│ │ ├── application.yml
│ │ ├── mapper/
│ │ │ └── UserMapper.xml
│ │ └── mybatis-config.xml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springboot/
│ └── mybatisxml/
│ └── SpringBootMybatisXmlApplicationTests.java
├── spring-boot-read-yml/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springbootreadyml/
│ │ │ ├── SpringBootReadYmlApplication.java
│ │ │ ├── config/
│ │ │ │ └── WxMpProperties.java
│ │ │ └── controller/
│ │ │ └── TestReadYmlController.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springbootreadyml/
│ └── SpringBootReadYmlApplicationTests.java
├── spring-boot-security/
│ ├── .gitignore
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springboot/
│ │ │ └── security/
│ │ │ ├── SpringBootSecurityApplication.java
│ │ │ ├── config/
│ │ │ │ ├── MyPasswordEncoder.java
│ │ │ │ └── WebSecurityConfig.java
│ │ │ └── controller/
│ │ │ ├── AdminController.java
│ │ │ ├── AppController.java
│ │ │ └── UserController.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springboot/
│ └── security/
│ └── SpringBootSecurityApplicationTests.java
├── spring-boot-study-base/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── study/
│ └── day01/
│ ├── Config.java
│ ├── LinuxCondition.java
│ ├── LinuxService.java
│ ├── ListService.java
│ ├── Main01.java
│ ├── WindowsCondition.java
│ └── WindowsService.java
├── spring-boot-websocket/
│ ├── .gitignore
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springboot/
│ │ │ └── websocket/
│ │ │ ├── SpringBootWebsocketApplication.java
│ │ │ ├── config/
│ │ │ │ └── WebSocketConfig.java
│ │ │ ├── controller/
│ │ │ │ └── WebSocketController.java
│ │ │ ├── dto/
│ │ │ │ └── SocketMessage.java
│ │ │ └── util/
│ │ │ └── WebSocketServer.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── static/
│ │ └── index.html
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springboot/
│ └── websocket/
│ └── SpringBootWebsocketApplicationTests.java
├── spring-cache-demo/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── DemoApplication.java
│ │ │ ├── aop/
│ │ │ │ └── LogRecordAspect.java
│ │ │ ├── config/
│ │ │ │ └── WebConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── entity/
│ │ │ │ └── User.java
│ │ │ ├── repository/
│ │ │ │ └── UserRepository.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserServiceImpl.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── DemoApplicationTests.java
├── spring-cloud-consumer-fegin/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springcloudconsumerfegin/
│ │ │ ├── SpringCloudConsumerFeginApplication.java
│ │ │ ├── controller/
│ │ │ │ └── FeginController.java
│ │ │ └── service/
│ │ │ └── IFeginService.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springcloudconsumerfegin/
│ └── SpringCloudConsumerFeginApplicationTests.java
├── spring-cloud-consumer-fegin-hystrix/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── springcloudconsumerfeginhystrix/
│ │ │ ├── SpringCloudConsumerFeginHystrixApplication.java
│ │ │ ├── controller/
│ │ │ │ └── FeginHystrixController.java
│ │ │ └── service/
│ │ │ ├── UserFeginService.java
│ │ │ └── impl/
│ │ │ └── UserFeginFailBackImpl.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── springcloudconsumerfeginhystrix/
│ └── SpringCloudConsumerFeginHystrixApplicationTests.java
├── spring-cloud-consumer-ribbon/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── RibbonConsumerApplication.java
│ │ │ └── controller/
│ │ │ ├── HystrixConsumerController.java
│ │ │ └── RibbonConsumerController.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── RibbonConsumerApplicationTests.java
├── spring-cloud-eureka/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ └── SpringCloudEurekaApplication.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── SpringCloudEurekaApplicationTests.java
├── spring-cloud-user-consumer/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── SpringCloudUserConsumerApplication.java
│ │ │ └── controller/
│ │ │ └── ConsumerController.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ └── SpringCloudUserConsumerApplicationTests.java
├── spring-cloud-user-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── demo/
│ │ │ ├── UserServiceDemoApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ └── entity/
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── demo/
│ ├── DemoApplicationTests.java
│ └── Test.java
└── spring-mybatis-generator/
└── src/
└── main/
└── resources/
├── application.yml
└── mybatis-generator.xml
SYMBOL INDEX (435 symbols across 152 files)
FILE: activemq-demo/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: activemq-demo/src/main/java/com/example/demo/DemoApplication.java
class DemoApplication (line 10) | @SpringBootApplication
method main (line 16) | public static void main(String[] args) {
FILE: activemq-demo/src/main/java/com/example/demo/config/ActivemqConfig.java
class ActivemqConfig (line 14) | @Configuration
method queue (line 20) | @Bean
method topic (line 28) | @Bean
FILE: activemq-demo/src/main/java/com/example/demo/controller/QueueCustomerController.java
class QueueCustomerController (line 6) | @RestController
method readActiveQueue (line 11) | @JmsListener(destination="active.queue")
FILE: activemq-demo/src/main/java/com/example/demo/controller/SendController.java
class SendController (line 15) | @RestController
method sendQueue (line 30) | @RequestMapping("/sendQueue")
method sendTopic (line 41) | @RequestMapping("/sendTopic")
FILE: activemq-demo/src/main/java/com/example/demo/controller/TopicCustomerController.java
class TopicCustomerController (line 6) | @RestController
method readActiveTopic1 (line 11) | @JmsListener(destination = "active.topic")
method readActiveTopic2 (line 19) | @JmsListener(destination = "active.topic")
FILE: activemq-demo/src/test/java/com/example/demo/DemoApplicationTests.java
class DemoApplicationTests (line 8) | @RunWith(SpringRunner.class)
method contextLoads (line 12) | @Test
FILE: exception-demo/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: exception-demo/src/main/java/com/example/demo/ExceptionDemoApplication.java
class ExceptionDemoApplication (line 6) | @SpringBootApplication
method main (line 9) | public static void main(String[] args) {
FILE: exception-demo/src/main/java/com/example/demo/controller/DemoController.java
class DemoController (line 9) | @Controller
method testException (line 15) | @ResponseBody
method testRight (line 27) | @ResponseBody
FILE: exception-demo/src/main/java/com/example/demo/util/GlobleExceptionHandler.java
class GlobleExceptionHandler (line 15) | @Slf4j
method handlerException (line 19) | @ExceptionHandler(Exception.class)
FILE: exception-demo/src/main/java/com/example/demo/util/Result.java
class Result (line 10) | @Data
method Result (line 27) | public Result(Integer code, String message) {
method Result (line 32) | public Result(Integer code, String message, Object object) {
FILE: exception-demo/src/test/java/com/example/demo/ExceptionDemoApplicationTests.java
class ExceptionDemoApplicationTests (line 8) | @RunWith(SpringRunner.class)
method contextLoads (line 12) | @Test
FILE: filter-demo/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: filter-demo/src/main/java/com/example/demo/DemoApplication.java
class DemoApplication (line 7) | @SpringBootApplication
method main (line 11) | public static void main(String[] args) {
FILE: filter-demo/src/main/java/com/example/demo/controller/DemoController.java
class DemoController (line 8) | @Controller
method test (line 15) | @ResponseBody
FILE: filter-demo/src/main/java/com/example/demo/filter/MyFilter1.java
class MyFilter1 (line 8) | @Slf4j
method init (line 11) | @Override
method doFilter (line 16) | @Override
method destroy (line 28) | @Override
FILE: filter-demo/src/test/java/com/example/demo/DemoApplicationTests.java
class DemoApplicationTests (line 8) | @RunWith(SpringRunner.class)
method contextLoads (line 12) | @Test
FILE: jpa-demo/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: jpa-demo/src/main/java/com/example/demo/SpringBootStudyJpaApplication.java
class SpringBootStudyJpaApplication (line 6) | @SpringBootApplication
method main (line 9) | public static void main(String[] args) {
FILE: jpa-demo/src/main/java/com/example/demo/controller/UserController.java
class UserController (line 10) | @RestController
method getUser (line 18) | @RequestMapping("/getUser/{id}")
method deleteUser (line 26) | @RequestMapping("/deleteUser/{id}")
FILE: jpa-demo/src/main/java/com/example/demo/entity/User.java
class User (line 5) | @Entity
method getId (line 15) | public Integer getId() {
method setId (line 19) | public void setId(Integer id) {
method getName (line 23) | public String getName() {
method setName (line 27) | public void setName(String name) {
method getPassword (line 31) | public String getPassword() {
method setPassword (line 35) | public void setPassword(String password) {
FILE: jpa-demo/src/main/java/com/example/demo/repository/UserRepository.java
type UserRepository (line 13) | public interface UserRepository extends CrudRepository<User, Integer> {
method getUser (line 15) | @Query("from User where id =:id ")
FILE: jpa-demo/src/main/java/com/example/demo/service/UserService.java
type UserService (line 6) | public interface UserService {
method getUser (line 7) | public User getUser(Integer id);
method deleteUser (line 9) | public void deleteUser(Integer id);
FILE: jpa-demo/src/main/java/com/example/demo/service/impl/UserServiceImpl.java
class UserServiceImpl (line 10) | @Service
method getUser (line 16) | @Override
method deleteUser (line 25) | @Override
FILE: jpa-demo/src/test/java/com/example/demo/SpringBootStudyJpaApplicationTests.java
class SpringBootStudyJpaApplicationTests (line 8) | @RunWith(SpringRunner.class)
method contextLoads (line 12) | @Test
FILE: qrcode/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: qrcode/src/main/java/com/example/demo/QrcodeApplication.java
class QrcodeApplication (line 6) | @SpringBootApplication
method main (line 9) | public static void main(String[] args) {
FILE: qrcode/src/main/java/com/example/demo/controller/QrCodeController.java
class QrCodeController (line 12) | @Controller
method createCommonQRCode (line 19) | @RequestMapping(value = "/createCommonQRCode")
method createLogoQRCode (line 39) | @RequestMapping(value = "/createLogoQRCode")
FILE: qrcode/src/main/java/com/example/demo/util/QRCodeUtil.java
class QRCodeUtil (line 20) | public class QRCodeUtil {
method createImage (line 31) | private static BufferedImage createImage(String content, String imgPat...
method insertImage (line 54) | private static void insertImage(BufferedImage source, String imgPath, ...
method encode (line 88) | public static void encode(String content, String imgPath, String destP...
method encode (line 94) | public static BufferedImage encode(String content, String imgPath, boo...
method mkdirs (line 99) | public static void mkdirs(String destPath) {
method encode (line 107) | public static void encode(String content, String imgPath, OutputStream...
method encode (line 113) | public static void encode(String content, OutputStream output) throws ...
FILE: qrcode/src/test/java/com/example/demo/QrcodeApplicationTests.java
class QrcodeApplicationTests (line 8) | @RunWith(SpringRunner.class)
method contextLoads (line 12) | @Test
FILE: sendmail/src/main/java/com/example/mail/sendmail/SendMailApplication.java
class SendMailApplication (line 7) | @SpringBootApplication
method main (line 11) | public static void main(String[] args) {
FILE: sendmail/src/main/java/com/example/mail/sendmail/controller/MailController.java
class MailController (line 16) | @Controller
method sendEmail (line 23) | @RequestMapping(value = "/sendMail")
FILE: sendmail/src/main/java/com/example/mail/sendmail/dto/Email.java
class Email (line 11) | public class Email {
method getToAddress (line 49) | public List<String> getToAddress() {
method setToAddress (line 54) | public void setToAddress(List<String> toAddress) {
method getCcAddress (line 59) | public List<String> getCcAddress() {
method setCcAddress (line 64) | public void setCcAddress(List<String> ccAddress) {
method getBccAddress (line 69) | public List<String> getBccAddress() {
method setBccAddress (line 74) | public void setBccAddress(List<String> bccAddress) {
method getSubject (line 79) | public String getSubject() {
method setSubject (line 84) | public void setSubject(String subject) {
method getContent (line 89) | public String getContent() {
method setContent (line 94) | public void setContent(String content) {
method getAttachments (line 99) | public List<File> getAttachments() {
method setAttachments (line 104) | public void setAttachments(List<File> attachments) {
FILE: sendmail/src/main/java/com/example/mail/sendmail/service/MailService.java
type MailService (line 6) | public interface MailService {
method sendMail (line 14) | public void sendMail(Email email);
FILE: sendmail/src/main/java/com/example/mail/sendmail/service/impl/MailServiceImpl.java
class MailServiceImpl (line 24) | @Service
method sendMail (line 42) | public void sendMail(Email email) {
FILE: spirng-boot-kaptcha/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: spirng-boot-kaptcha/src/main/java/com/example/demo/DemoApplication.java
class DemoApplication (line 6) | @SpringBootApplication
method main (line 9) | public static void main(String[] args) {
FILE: spirng-boot-kaptcha/src/main/java/com/example/demo/config/KaptchaConfig.java
class KaptchaConfig (line 16) | @Configuration
method captchaProducer (line 22) | @Bean
FILE: spirng-boot-kaptcha/src/main/java/com/example/demo/controller/KaptchaController.java
class KaptchaController (line 17) | @Slf4j
method getKaptchaImage (line 25) | @RequestMapping("/getCode")
FILE: spirng-boot-kaptcha/src/test/java/com/example/demo/DemoApplicationTests.java
class DemoApplicationTests (line 8) | @RunWith(SpringRunner.class)
method contextLoads (line 12) | @Test
FILE: spring-boot-encry/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: spring-boot-encry/src/main/java/com/example/springbootencry/SpringBootEncryApplication.java
class SpringBootEncryApplication (line 6) | @SpringBootApplication
method main (line 9) | public static void main(String[] args) {
FILE: spring-boot-encry/src/main/java/com/example/springbootencry/advice/DecryptRequestBodyAdvice.java
class DecryptRequestBodyAdvice (line 25) | @Component
method supports (line 31) | @Override
method beforeBodyRead (line 36) | @Override
method afterBodyRead (line 41) | @Override
method handleEmptyBody (line 58) | @Override
FILE: spring-boot-encry/src/main/java/com/example/springbootencry/advice/EncryResponseBodyAdvice.java
class EncryResponseBodyAdvice (line 25) | @Component
method supports (line 31) | @Override
method beforeBodyWrite (line 36) | @Override
FILE: spring-boot-encry/src/main/java/com/example/springbootencry/controller/TestController.java
class TestController (line 14) | @RestController
method sendResponseEncryData (line 22) | @RequestMapping(value = "/sendResponseEncryData")
method getRequestData (line 33) | @RequestMapping(value = "/getRequestData")
FILE: spring-boot-encry/src/main/java/com/example/springbootencry/util/DesUtil.java
class DesUtil (line 22) | public class DesUtil {
method main (line 28) | public static void main(String[] args) throws Exception {
method encrypt (line 43) | public static String encrypt(String data) throws Exception {
method decrypt (line 55) | public static String decrypt(String data) throws IOException, Exception {
method encrypt (line 72) | public static String encrypt(String data, String key) throws Exception {
method decrypt (line 87) | public static String decrypt(String data, String key) throws IOException,
method encrypt (line 105) | private static byte[] encrypt(byte[] data, byte[] key) throws Exception {
method decrypt (line 133) | private static byte[] decrypt(byte[] data, byte[] key) throws Exception {
FILE: spring-boot-encry/src/main/java/com/example/springbootencry/util/Result.java
class Result (line 6) | public class Result implements java.io.Serializable {
method isSuccess (line 11) | public boolean isSuccess() {
method setSuccess (line 15) | public Result setSuccess(boolean success) {
method createResult (line 20) | public static Result createResult() {
method getData (line 24) | public Map getData() {
method setData (line 28) | public void setData(Map data) {
method setDataValue (line 32) | public void setDataValue(String key, Object value) {
FILE: spring-boot-init/src/main/java/com/example/springbootinit/component/ApplicationRunnerImpl.java
class ApplicationRunnerImpl (line 8) | @Component
method run (line 11) | @Override
method hello (line 17) | public void hello(){
FILE: spring-boot-init/src/main/java/com/example/springbootinit/component/CommandLineRunnerImpl.java
class CommandLineRunnerImpl (line 7) | @Component
method run (line 11) | @Override
method askForLeave (line 16) | public void askForLeave(){
FILE: spring-boot-init/src/main/java/com/example/springbootinit/component/PostConstructInit.java
class PostConstructInit (line 11) | @Component
method init (line 17) | @PostConstruct
FILE: spring-boot-init/src/main/java/com/example/springbootinit/component/TestService.java
class TestService (line 8) | @Slf4j
method getTestData (line 12) | void getTestData() {
FILE: spring-boot-init/src/test/java/com/example/springbootinit/Test.java
class Test (line 32) | @Slf4j
method main (line 36) | public static void main(String[] args) {
method testGetComment (line 97) | @org.junit.jupiter.api.Test
method testSplit (line 170) | @org.junit.jupiter.api.Test
FILE: spring-boot-jwt/src/main/java/com/example/springbootjwt/controller/LoginController.java
class LoginController (line 15) | @Slf4j
method login (line 32) | @RequestMapping("/login")
FILE: spring-boot-jwt/src/main/java/com/example/springbootjwt/controller/SecureController.java
class SecureController (line 12) | @Slf4j
method login (line 19) | @RequestMapping("/secure/getUserInfo")
FILE: spring-boot-jwt/src/main/java/com/example/springbootjwt/entity/User.java
class User (line 9) | @Data
FILE: spring-boot-jwt/src/main/java/com/example/springbootjwt/filter/JwtFilter.java
class JwtFilter (line 17) | @Slf4j
method init (line 20) | @Override
method doFilter (line 24) | @Override
method destroy (line 61) | @Override
FILE: spring-boot-jwt/src/main/java/com/example/springbootjwt/util/JwtUtil.java
class JwtUtil (line 20) | public class JwtUtil {
method createToken (line 36) | public static String createToken(User user) {
method verifyToken (line 57) | public static Map<String, Claim> verifyToken(String token) {
FILE: spring-boot-log/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: spring-boot-log/src/main/java/com/example/springbootlog/SpringBootLogApplication.java
class SpringBootLogApplication (line 6) | @SpringBootApplication
method main (line 9) | public static void main(String[] args) {
FILE: spring-boot-log/src/main/java/com/example/springbootlog/config/InterceptorConfig.java
class InterceptorConfig (line 10) | @Configuration
method getSessionInterceptor (line 13) | @Bean
method addInterceptors (line 18) | @Override
FILE: spring-boot-log/src/main/java/com/example/springbootlog/controller/TestLogController.java
class TestLogController (line 11) | @RestController
method testLogin (line 19) | @RequestMapping(value = "/testLogin")
method testNewOrder (line 28) | @RequestMapping(value = "/testNewOrder")
method testPay (line 38) | @RequestMapping(value = "/testPay")
FILE: spring-boot-log/src/main/java/com/example/springbootlog/interceptor/SessionInterceptor.java
class SessionInterceptor (line 10) | public class SessionInterceptor extends HandlerInterceptorAdapter {
method postHandle (line 17) | @Override
method preHandle (line 22) | @Override
method afterCompletion (line 33) | @Override
FILE: spring-boot-log/src/test/java/com/example/springbootlog/SpringBootLogApplicationTests.java
class SpringBootLogApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/config/MybatisConfig.java
class MybatisConfig (line 10) | @Configuration
method configurationCustomizer (line 13) | @Bean
FILE: spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/controller/UserController.java
class UserController (line 18) | @Slf4j
method queryAllUsers (line 28) | @GetMapping("/queryAllUsers")
method add (line 33) | @GetMapping("/add")
FILE: spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/dao/mapper/UserMapper.java
type UserMapper (line 12) | @Mapper
method queryAllUsers (line 18) | @Select("SELECT * FROM user ")
method add (line 25) | @Options(useGeneratedKeys = true, keyProperty = "id")
FILE: spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/dao/mapper/UserRoleMapper.java
type UserRoleMapper (line 9) | @Mapper
method add (line 16) | @Options(useGeneratedKeys = true, keyProperty = "id")
FILE: spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/entity/User.java
class User (line 11) | @Data
FILE: spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/entity/UserRole.java
class UserRole (line 11) | @Data
FILE: spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/service/UserRoleService.java
type UserRoleService (line 6) | public interface UserRoleService {
method add (line 11) | int add(UserRole userRole);
FILE: spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/service/UserService.java
type UserService (line 8) | public interface UserService {
method queryAllUsers (line 9) | List<User> queryAllUsers();
method add (line 15) | int add(User user);
FILE: spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/service/impl/UserRoleServiceImpl.java
class UserRoleServiceImpl (line 17) | @Slf4j
method add (line 29) | @Transactional(propagation = Propagation.NESTED)
FILE: spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/service/impl/UserServiceImpl.java
class UserServiceImpl (line 14) | @Slf4j
method queryAllUsers (line 21) | @Override
method add (line 30) | @Transactional(propagation = Propagation.NESTED)
FILE: spring-boot-mybatis-generator/src/main/java/com/example/springbootmybatis/generator/SpringBootMybatisGeneratorApplication.java
class SpringBootMybatisGeneratorApplication (line 6) | @SpringBootApplication
method main (line 9) | public static void main(String[] args) {
FILE: spring-boot-mybatis-generator/src/main/java/com/example/springbootmybatis/generator/dao/UserMapper.java
type UserMapper (line 6) | public interface UserMapper {
method deleteByPrimaryKey (line 7) | int deleteByPrimaryKey(Integer id);
method insert (line 9) | int insert(User record);
method selectByPrimaryKey (line 11) | User selectByPrimaryKey(Integer id);
method selectAll (line 13) | List<User> selectAll();
method updateByPrimaryKey (line 15) | int updateByPrimaryKey(User record);
FILE: spring-boot-mybatis-generator/src/main/java/com/example/springbootmybatis/generator/dao/UserRoleMapper.java
type UserRoleMapper (line 6) | public interface UserRoleMapper {
method deleteByPrimaryKey (line 7) | int deleteByPrimaryKey(Integer id);
method insert (line 9) | int insert(UserRole record);
method selectByPrimaryKey (line 11) | UserRole selectByPrimaryKey(Integer id);
method selectAll (line 13) | List<UserRole> selectAll();
method updateByPrimaryKey (line 15) | int updateByPrimaryKey(UserRole record);
FILE: spring-boot-mybatis-generator/src/main/java/com/example/springbootmybatis/generator/entity/User.java
class User (line 5) | public class User implements Serializable {
method getId (line 20) | public Integer getId() {
method setId (line 24) | public void setId(Integer id) {
method getName (line 28) | public String getName() {
method setName (line 32) | public void setName(String name) {
method getPassword (line 36) | public String getPassword() {
method setPassword (line 40) | public void setPassword(String password) {
method getSex (line 44) | public Integer getSex() {
method setSex (line 48) | public void setSex(Integer sex) {
method getDes (line 52) | public String getDes() {
method setDes (line 56) | public void setDes(String des) {
method getUserType (line 60) | public Integer getUserType() {
method setUserType (line 64) | public void setUserType(Integer userType) {
method toString (line 68) | @Override
FILE: spring-boot-mybatis-generator/src/main/java/com/example/springbootmybatis/generator/entity/UserRole.java
class UserRole (line 5) | public class UserRole implements Serializable {
method getId (line 14) | public Integer getId() {
method setId (line 18) | public void setId(Integer id) {
method getUserId (line 22) | public Integer getUserId() {
method setUserId (line 26) | public void setUserId(Integer userId) {
method getRoleId (line 30) | public Integer getRoleId() {
method setRoleId (line 34) | public void setRoleId(Integer roleId) {
method toString (line 38) | @Override
FILE: spring-boot-mybatis-generator/src/test/java/com/example/springbootmybatis/generator/SpringBootMybatisGeneratorApplicationTests.java
class SpringBootMybatisGeneratorApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: spring-boot-mybatis-xml/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: spring-boot-mybatis-xml/src/main/java/com/example/springboot/mybatisxml/SpringBootMybatisXmlApplication.java
class SpringBootMybatisXmlApplication (line 6) | @MapperScan("com.example.springboot.mybatisxml.dao.mapper")
method main (line 10) | public static void main(String[] args) {
FILE: spring-boot-mybatis-xml/src/main/java/com/example/springboot/mybatisxml/controller/UserController.java
class UserController (line 19) | @Slf4j
method queryAllUsers (line 30) | @GetMapping("/queryAllUsers")
FILE: spring-boot-mybatis-xml/src/main/java/com/example/springboot/mybatisxml/dao/mapper/UserMapper.java
type UserMapper (line 8) | public interface UserMapper {
method queryAllUsers (line 10) | List<User> queryAllUsers();
FILE: spring-boot-mybatis-xml/src/main/java/com/example/springboot/mybatisxml/entity/User.java
class User (line 10) | @Data
FILE: spring-boot-mybatis-xml/src/main/java/com/example/springboot/mybatisxml/service/UserService.java
type UserService (line 8) | public interface UserService {
method queryAllUsers (line 9) | List<User> queryAllUsers();
FILE: spring-boot-mybatis-xml/src/main/java/com/example/springboot/mybatisxml/service/impl/UserServiceImpl.java
class UserServiceImpl (line 12) | @Slf4j
method queryAllUsers (line 19) | @Override
FILE: spring-boot-mybatis-xml/src/test/java/com/example/springboot/mybatisxml/SpringBootMybatisXmlApplicationTests.java
class SpringBootMybatisXmlApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: spring-boot-read-yml/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: spring-boot-read-yml/src/main/java/com/example/springbootreadyml/SpringBootReadYmlApplication.java
class SpringBootReadYmlApplication (line 6) | @SpringBootApplication
method main (line 9) | public static void main(String[] args) {
FILE: spring-boot-read-yml/src/main/java/com/example/springbootreadyml/config/WxMpProperties.java
class WxMpProperties (line 11) | @Data
class MpConfig (line 17) | @Data
FILE: spring-boot-read-yml/src/main/java/com/example/springbootreadyml/controller/TestReadYmlController.java
class TestReadYmlController (line 16) | @Slf4j
method readYml (line 26) | @RequestMapping("/readYml")
FILE: spring-boot-read-yml/src/test/java/com/example/springbootreadyml/SpringBootReadYmlApplicationTests.java
class SpringBootReadYmlApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: spring-boot-security/src/main/java/com/example/springboot/security/SpringBootSecurityApplication.java
class SpringBootSecurityApplication (line 6) | @SpringBootApplication
method main (line 9) | public static void main(String[] args) {
FILE: spring-boot-security/src/main/java/com/example/springboot/security/config/MyPasswordEncoder.java
class MyPasswordEncoder (line 5) | public class MyPasswordEncoder implements PasswordEncoder {
method encode (line 6) | @Override
method matches (line 11) | @Override
FILE: spring-boot-security/src/main/java/com/example/springboot/security/config/WebSecurityConfig.java
class WebSecurityConfig (line 14) | @EnableWebSecurity
method configure (line 18) | @Override
method configure (line 25) | @Override
FILE: spring-boot-security/src/main/java/com/example/springboot/security/controller/AdminController.java
class AdminController (line 9) | @RestController
method hello (line 12) | @GetMapping("/admin")
FILE: spring-boot-security/src/main/java/com/example/springboot/security/controller/AppController.java
class AppController (line 9) | @RestController
method hello (line 12) | @GetMapping("/hello")
FILE: spring-boot-security/src/main/java/com/example/springboot/security/controller/UserController.java
class UserController (line 9) | @RestController
method hello (line 12) | @GetMapping("/user")
FILE: spring-boot-security/src/test/java/com/example/springboot/security/SpringBootSecurityApplicationTests.java
class SpringBootSecurityApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: spring-boot-study-base/src/main/java/com/study/day01/Config.java
class Config (line 11) | @Configuration
method window (line 14) | @Bean
method linux (line 20) | @Bean
FILE: spring-boot-study-base/src/main/java/com/study/day01/LinuxCondition.java
class LinuxCondition (line 11) | public class LinuxCondition implements Condition {
method matches (line 12) | public boolean matches(ConditionContext context, AnnotatedTypeMetadata...
FILE: spring-boot-study-base/src/main/java/com/study/day01/LinuxService.java
class LinuxService (line 7) | public class LinuxService implements ListService {
method showListCmd (line 8) | public String showListCmd() {
FILE: spring-boot-study-base/src/main/java/com/study/day01/ListService.java
type ListService (line 9) | public interface ListService {
method showListCmd (line 11) | public String showListCmd();
FILE: spring-boot-study-base/src/main/java/com/study/day01/Main01.java
class Main01 (line 9) | public class Main01 {
method main (line 11) | public static void main (String []args) {
FILE: spring-boot-study-base/src/main/java/com/study/day01/WindowsCondition.java
class WindowsCondition (line 11) | public class WindowsCondition implements Condition {
method matches (line 12) | public boolean matches(ConditionContext context, AnnotatedTypeMetadata...
FILE: spring-boot-study-base/src/main/java/com/study/day01/WindowsService.java
class WindowsService (line 7) | public class WindowsService implements ListService {
method showListCmd (line 8) | public String showListCmd() {
FILE: spring-boot-websocket/src/main/java/com/example/springboot/websocket/SpringBootWebsocketApplication.java
class SpringBootWebsocketApplication (line 6) | @SpringBootApplication
method main (line 9) | public static void main(String[] args) {
FILE: spring-boot-websocket/src/main/java/com/example/springboot/websocket/config/WebSocketConfig.java
class WebSocketConfig (line 8) | @Configuration
method serverEndpointExporter (line 21) | @Bean
FILE: spring-boot-websocket/src/main/java/com/example/springboot/websocket/controller/WebSocketController.java
class WebSocketController (line 13) | @RestController
method sendAllMessage (line 24) | @RequestMapping(value = "/sendAll", method = RequestMethod.GET)
method sendOneMessage (line 41) | @RequestMapping(value = "/sendOne", method = RequestMethod.GET)
FILE: spring-boot-websocket/src/main/java/com/example/springboot/websocket/dto/SocketMessage.java
class SocketMessage (line 3) | public class SocketMessage {
FILE: spring-boot-websocket/src/main/java/com/example/springboot/websocket/util/WebSocketServer.java
class WebSocketServer (line 14) | @ServerEndpoint(value = "/ws/asset")
method init (line 18) | @PostConstruct
method onOpen (line 31) | @OnOpen
method onClose (line 42) | @OnClose
method onMessage (line 55) | @OnMessage
method onError (line 67) | @OnError
method SendMessage (line 78) | public static void SendMessage(Session session, String message) {
method BroadCastInfo (line 93) | public static void BroadCastInfo(String message) throws IOException {
method SendMessage (line 107) | public static void SendMessage(String message,String sessionId) throws...
FILE: spring-boot-websocket/src/test/java/com/example/springboot/websocket/SpringBootWebsocketApplicationTests.java
class SpringBootWebsocketApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: spring-cache-demo/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: spring-cache-demo/src/main/java/com/example/demo/DemoApplication.java
class DemoApplication (line 12) | @SpringBootApplication
method main (line 15) | public static void main(String[] args) {
FILE: spring-cache-demo/src/main/java/com/example/demo/aop/LogRecordAspect.java
class LogRecordAspect (line 24) | @Aspect // 定义一个切面
method excudeService (line 30) | @Pointcut("execution(* com.example.demo.controller.*Controller.*(..))")
method doAround (line 34) | @Around("excudeService()")
FILE: spring-cache-demo/src/main/java/com/example/demo/config/WebConfig.java
class WebConfig (line 19) | @Configuration
method redisTemplate (line 22) | @Bean(name = "redisTemplate")
method cacheManager (line 35) | @Primary
method keySerializer (line 51) | private RedisSerializer<String> keySerializer() {
method valueSerializer (line 55) | private RedisSerializer<Object> valueSerializer() {
FILE: spring-cache-demo/src/main/java/com/example/demo/controller/UserController.java
class UserController (line 11) | @RestController
method getUser (line 20) | @RequestMapping("/getUser/{id}")
method deleteUser (line 28) | @RequestMapping("/deleteUser/{id}")
method updateUser (line 35) | @RequestMapping("/updateUser/{id}")
FILE: spring-cache-demo/src/main/java/com/example/demo/entity/User.java
class User (line 5) | @Entity
method getId (line 15) | public Integer getId() {
method setId (line 19) | public void setId(Integer id) {
method getName (line 23) | public String getName() {
method setName (line 27) | public void setName(String name) {
method getPassword (line 31) | public String getPassword() {
method setPassword (line 35) | public void setPassword(String password) {
FILE: spring-cache-demo/src/main/java/com/example/demo/repository/UserRepository.java
type UserRepository (line 13) | public interface UserRepository extends CrudRepository<User, Integer> {
method getUser (line 15) | @Query("from User where id =:id ")
FILE: spring-cache-demo/src/main/java/com/example/demo/service/UserService.java
type UserService (line 6) | public interface UserService {
method getUser (line 9) | public User getUser(Integer id);
method deleteUser (line 11) | public void deleteUser(Integer id);
method updateUser (line 14) | public User updateUser(User updateUser);
FILE: spring-cache-demo/src/main/java/com/example/demo/service/impl/UserServiceImpl.java
class UserServiceImpl (line 13) | @Service
method getUser (line 20) | @Override
method deleteUser (line 27) | @Override
method updateUser (line 35) | @Override
FILE: spring-cache-demo/src/test/java/com/example/demo/DemoApplicationTests.java
class DemoApplicationTests (line 8) | @RunWith(SpringRunner.class)
method contextLoads (line 12) | @Test
FILE: spring-cloud-consumer-fegin-hystrix/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: spring-cloud-consumer-fegin-hystrix/src/main/java/com/example/springcloudconsumerfeginhystrix/SpringCloudConsumerFeginHystrixApplication.java
class SpringCloudConsumerFeginHystrixApplication (line 8) | @EnableEurekaClient
method main (line 13) | public static void main(String[] args) {
FILE: spring-cloud-consumer-fegin-hystrix/src/main/java/com/example/springcloudconsumerfeginhystrix/controller/FeginHystrixController.java
class FeginHystrixController (line 9) | @RestController
method getUser (line 16) | @GetMapping("/getUser")
FILE: spring-cloud-consumer-fegin-hystrix/src/main/java/com/example/springcloudconsumerfeginhystrix/service/UserFeginService.java
type UserFeginService (line 9) | @FeignClient(value = "user-service", fallback = UserFeginFailBackImpl.cl...
method getUser (line 12) | @RequestMapping(value = "/provider/getUser")
FILE: spring-cloud-consumer-fegin-hystrix/src/main/java/com/example/springcloudconsumerfeginhystrix/service/impl/UserFeginFailBackImpl.java
class UserFeginFailBackImpl (line 7) | @Slf4j
method getUser (line 11) | @Override
FILE: spring-cloud-consumer-fegin-hystrix/src/test/java/com/example/springcloudconsumerfeginhystrix/SpringCloudConsumerFeginHystrixApplicationTests.java
class SpringCloudConsumerFeginHystrixApplicationTests (line 8) | @RunWith(SpringRunner.class)
method contextLoads (line 12) | @Test
FILE: spring-cloud-consumer-fegin/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: spring-cloud-consumer-fegin/src/main/java/com/example/springcloudconsumerfegin/SpringCloudConsumerFeginApplication.java
class SpringCloudConsumerFeginApplication (line 9) | @EnableEurekaClient
method main (line 14) | public static void main(String[] args) {
FILE: spring-cloud-consumer-fegin/src/main/java/com/example/springcloudconsumerfegin/controller/FeginController.java
class FeginController (line 9) | @RestController
method getUser (line 16) | @GetMapping("/getUser")
FILE: spring-cloud-consumer-fegin/src/main/java/com/example/springcloudconsumerfegin/service/IFeginService.java
type IFeginService (line 8) | @FeignClient(value = "user-service")
method getUser (line 11) | @RequestMapping(value = "/provider/getUser")
FILE: spring-cloud-consumer-fegin/src/test/java/com/example/springcloudconsumerfegin/SpringCloudConsumerFeginApplicationTests.java
class SpringCloudConsumerFeginApplicationTests (line 8) | @RunWith(SpringRunner.class)
method contextLoads (line 12) | @Test
FILE: spring-cloud-consumer-ribbon/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: spring-cloud-consumer-ribbon/src/main/java/com/example/demo/RibbonConsumerApplication.java
class RibbonConsumerApplication (line 13) | @EnableHystrix //在启动类上添加@EnableHystrix注解开启Hystrix的熔断器功能。
method restTemplate (line 19) | @LoadBalanced
method main (line 25) | public static void main(String[] args) {
FILE: spring-cloud-consumer-ribbon/src/main/java/com/example/demo/controller/HystrixConsumerController.java
class HystrixConsumerController (line 15) | @Slf4j
method getUser (line 26) | @HystrixCommand(fallbackMethod = "getDefaultUser")
method getDefaultUser (line 33) | public String getDefaultUser(Integer id) {
FILE: spring-cloud-consumer-ribbon/src/main/java/com/example/demo/controller/RibbonConsumerController.java
class RibbonConsumerController (line 15) | @Slf4j
method getUser (line 26) | @GetMapping("getUser")
FILE: spring-cloud-consumer-ribbon/src/test/java/com/example/demo/RibbonConsumerApplicationTests.java
class RibbonConsumerApplicationTests (line 8) | @RunWith(SpringRunner.class)
method contextLoads (line 12) | @Test
FILE: spring-cloud-eureka/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: spring-cloud-eureka/src/main/java/com/example/demo/SpringCloudEurekaApplication.java
class SpringCloudEurekaApplication (line 7) | @EnableEurekaServer
method main (line 10) | public static void main(String[] args) {
FILE: spring-cloud-eureka/src/test/java/com/example/demo/SpringCloudEurekaApplicationTests.java
class SpringCloudEurekaApplicationTests (line 8) | @RunWith(SpringRunner.class)
method contextLoads (line 12) | @Test
FILE: spring-cloud-user-consumer/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: spring-cloud-user-consumer/src/main/java/com/example/demo/SpringCloudUserConsumerApplication.java
class SpringCloudUserConsumerApplication (line 9) | @EnableDiscoveryClient
method restTemplate (line 13) | @Bean
method main (line 18) | public static void main(String[] args) {
FILE: spring-cloud-user-consumer/src/main/java/com/example/demo/controller/ConsumerController.java
class ConsumerController (line 15) | @Slf4j
method getUser (line 29) | @GetMapping("getUser")
FILE: spring-cloud-user-consumer/src/test/java/com/example/demo/SpringCloudUserConsumerApplicationTests.java
class SpringCloudUserConsumerApplicationTests (line 8) | @RunWith(SpringRunner.class)
method contextLoads (line 12) | @Test
FILE: spring-cloud-user-service/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 29) | public class MavenWrapperDownloader {
method main (line 55) | public static void main(String args[]) {
method downloadFileFromURL (line 104) | private static void downloadFileFromURL(String urlString, File destina...
FILE: spring-cloud-user-service/src/main/java/com/example/demo/UserServiceDemoApplication.java
class UserServiceDemoApplication (line 7) | @EnableEurekaClient
method main (line 11) | public static void main(String[] args) {
FILE: spring-cloud-user-service/src/main/java/com/example/demo/controller/UserController.java
class UserController (line 15) | @Slf4j
method getUser (line 33) | @RequestMapping("/getUser")
FILE: spring-cloud-user-service/src/main/java/com/example/demo/entity/User.java
class User (line 10) | @Data
FILE: spring-cloud-user-service/src/test/java/com/example/demo/DemoApplicationTests.java
class DemoApplicationTests (line 8) | @RunWith(SpringRunner.class)
method contextLoads (line 12) | @Test
FILE: spring-cloud-user-service/src/test/java/com/example/demo/Test.java
class Test (line 11) | public class Test {
method testFastJson (line 14) | @org.junit.Test
Condensed preview — 299 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (575K chars).
[
{
"path": "README.md",
"chars": 579,
"preview": "#### 本项目记录 SpringBoot和SpringCloud 学习过程中遇到的问题,下面的是我的公众号二维码图片,欢迎关注,欢迎留言,一起学习,一起进步。\n\n under one\nor more contributor license agreements. See the NOTICE fi"
},
{
"path": "activemq-demo/.mvn/wrapper/maven-wrapper.properties",
"chars": 116,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip\n"
},
{
"path": "activemq-demo/mvnw",
"chars": 9114,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "activemq-demo/mvnw.cmd",
"chars": 5811,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "activemq-demo/pom.xml",
"chars": 1779,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "activemq-demo/src/main/java/com/example/demo/DemoApplication.java",
"chars": 447,
"preview": "package com.example.demo;\n\nimport org.apache.activemq.command.ActiveMQQueue;\nimport org.springframework.boot.SpringAppli"
},
{
"path": "activemq-demo/src/main/java/com/example/demo/config/ActivemqConfig.java",
"chars": 562,
"preview": "package com.example.demo.config;\n\nimport org.apache.activemq.command.ActiveMQQueue;\nimport org.apache.activemq.command.A"
},
{
"path": "activemq-demo/src/main/java/com/example/demo/controller/QueueCustomerController.java",
"chars": 366,
"preview": "package com.example.demo.controller;\n\nimport org.springframework.jms.annotation.JmsListener;\nimport org.springframework."
},
{
"path": "activemq-demo/src/main/java/com/example/demo/controller/SendController.java",
"chars": 1093,
"preview": "package com.example.demo.controller;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springfr"
},
{
"path": "activemq-demo/src/main/java/com/example/demo/controller/TopicCustomerController.java",
"chars": 544,
"preview": "package com.example.demo.controller;\n\nimport org.springframework.jms.annotation.JmsListener;\nimport org.springframework."
},
{
"path": "activemq-demo/src/main/resources/application.properties",
"chars": 113,
"preview": "#ӵַ\nspring.activemq.broker-url=tcp://192.168.0.1:61616\n#ǵԵ㣨queueô˴ĬӦfalseģôһΪtrue\nspring.jms.pub-sub-domain=true\n"
},
{
"path": "activemq-demo/src/test/java/com/example/demo/DemoApplicationTests.java",
"chars": 340,
"preview": "package com.example.demo;\n\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.boot.test."
},
{
"path": "exception-demo/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "exception-demo/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4629,
"preview": "/*\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE fi"
},
{
"path": "exception-demo/.mvn/wrapper/maven-wrapper.properties",
"chars": 116,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip\n"
},
{
"path": "exception-demo/mvnw",
"chars": 9114,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "exception-demo/mvnw.cmd",
"chars": 5811,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "exception-demo/pom.xml",
"chars": 1602,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "exception-demo/src/main/java/com/example/demo/ExceptionDemoApplication.java",
"chars": 335,
"preview": "package com.example.demo;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfig"
},
{
"path": "exception-demo/src/main/java/com/example/demo/controller/DemoController.java",
"chars": 790,
"preview": "package com.example.demo.controller;\n\nimport com.example.demo.util.Result;\nimport org.springframework.stereotype.Control"
},
{
"path": "exception-demo/src/main/java/com/example/demo/util/GlobleExceptionHandler.java",
"chars": 702,
"preview": "package com.example.demo.util;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.web.bind.annotation.Control"
},
{
"path": "exception-demo/src/main/java/com/example/demo/util/Result.java",
"chars": 691,
"preview": "package com.example.demo.util;\n\nimport lombok.Data;\n\nimport java.io.Serializable;\n\n/**\n * 封装返回类\n */\n@Data\npublic class R"
},
{
"path": "exception-demo/src/main/resources/application.properties",
"chars": 1,
"preview": "\n"
},
{
"path": "exception-demo/src/test/java/com/example/demo/ExceptionDemoApplicationTests.java",
"chars": 349,
"preview": "package com.example.demo;\n\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.boot.test."
},
{
"path": "filter-demo/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "filter-demo/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4629,
"preview": "/*\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE fi"
},
{
"path": "filter-demo/.mvn/wrapper/maven-wrapper.properties",
"chars": 116,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip\n"
},
{
"path": "filter-demo/mvnw",
"chars": 9114,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "filter-demo/mvnw.cmd",
"chars": 5811,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "filter-demo/pom.xml",
"chars": 1772,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "filter-demo/src/main/java/com/example/demo/DemoApplication.java",
"chars": 446,
"preview": "package com.example.demo;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfig"
},
{
"path": "filter-demo/src/main/java/com/example/demo/config/WebConfig.java",
"chars": 643,
"preview": "//package com.example.demo.config;\n//\n//import com.example.demo.filter.MyFilter2;\n//import org.springframework.boot.web."
},
{
"path": "filter-demo/src/main/java/com/example/demo/controller/DemoController.java",
"chars": 399,
"preview": "package com.example.demo.controller;\n\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.b"
},
{
"path": "filter-demo/src/main/java/com/example/demo/filter/MyFilter1.java",
"chars": 809,
"preview": "package com.example.demo.filter;\n\nimport lombok.extern.slf4j.Slf4j;\n\nimport javax.servlet.*;\nimport javax.servlet.annota"
},
{
"path": "filter-demo/src/main/java/com/example/demo/filter/MyFilter2.java",
"chars": 806,
"preview": "//package com.example.demo.filter;\n//\n//import lombok.extern.slf4j.Slf4j;\n//\n//import javax.servlet.*;\n//import javax.se"
},
{
"path": "filter-demo/src/main/resources/application.properties",
"chars": 1,
"preview": "\n"
},
{
"path": "filter-demo/src/test/java/com/example/demo/DemoApplicationTests.java",
"chars": 340,
"preview": "package com.example.demo;\n\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.boot.test."
},
{
"path": "jpa-demo/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "jpa-demo/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4629,
"preview": "/*\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE fi"
},
{
"path": "jpa-demo/.mvn/wrapper/maven-wrapper.properties",
"chars": 116,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip\n"
},
{
"path": "jpa-demo/mvnw",
"chars": 9114,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "jpa-demo/mvnw.cmd",
"chars": 5811,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "jpa-demo/pom.xml",
"chars": 1968,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "jpa-demo/src/main/java/com/example/demo/SpringBootStudyJpaApplication.java",
"chars": 345,
"preview": "package com.example.demo;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfig"
},
{
"path": "jpa-demo/src/main/java/com/example/demo/controller/UserController.java",
"chars": 825,
"preview": "package com.example.demo.controller;\n\nimport com.example.demo.entity.User;\nimport com.example.demo.service.UserService;\n"
},
{
"path": "jpa-demo/src/main/java/com/example/demo/entity/User.java",
"chars": 658,
"preview": "package com.example.demo.entity;\n\nimport javax.persistence.*;\n\n@Entity\n@Table(name = \"user\")\npublic class User {\n\n @I"
},
{
"path": "jpa-demo/src/main/java/com/example/demo/repository/UserRepository.java",
"chars": 494,
"preview": "package com.example.demo.repository;\n\nimport com.example.demo.entity.User;\nimport org.springframework.data.jpa.repositor"
},
{
"path": "jpa-demo/src/main/java/com/example/demo/service/UserService.java",
"chars": 184,
"preview": "package com.example.demo.service;\n\n\nimport com.example.demo.entity.User;\n\npublic interface UserService {\n public User"
},
{
"path": "jpa-demo/src/main/java/com/example/demo/service/impl/UserServiceImpl.java",
"chars": 714,
"preview": "package com.example.demo.service.impl;\n\nimport com.example.demo.entity.User;\nimport com.example.demo.repository.UserRepo"
},
{
"path": "jpa-demo/src/main/resources/application.properties",
"chars": 329,
"preview": "#tomcatĬ϶˿ں\nserver.port=8090\n\n#ԴϢ\nspring.datasource.driver-class-name=com.mysql.jdbc.Driver\nspring.datasource.url=jdbc:"
},
{
"path": "jpa-demo/src/test/java/com/example/demo/SpringBootStudyJpaApplicationTests.java",
"chars": 354,
"preview": "package com.example.demo;\n\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.boot.test."
},
{
"path": "pom.xml",
"chars": 662,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "qrcode/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "qrcode/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4629,
"preview": "/*\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE fi"
},
{
"path": "qrcode/.mvn/wrapper/maven-wrapper.properties",
"chars": 116,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip\n"
},
{
"path": "qrcode/mvnw",
"chars": 9114,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "qrcode/mvnw.cmd",
"chars": 5811,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "qrcode/pom.xml",
"chars": 1811,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "qrcode/src/main/java/com/example/demo/QrcodeApplication.java",
"chars": 321,
"preview": "package com.example.demo;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfig"
},
{
"path": "qrcode/src/main/java/com/example/demo/controller/QrCodeController.java",
"chars": 1685,
"preview": "package com.example.demo.controller;\n\nimport com.example.demo.util.QRCodeUtil;\nimport org.springframework.stereotype.Con"
},
{
"path": "qrcode/src/main/java/com/example/demo/util/QRCodeUtil.java",
"chars": 4402,
"preview": "package com.example.demo.util;\n\nimport com.google.zxing.BarcodeFormat;\nimport com.google.zxing.EncodeHintType;\nimport co"
},
{
"path": "qrcode/src/main/resources/application.properties",
"chars": 1,
"preview": "\n"
},
{
"path": "qrcode/src/test/java/com/example/demo/QrcodeApplicationTests.java",
"chars": 342,
"preview": "package com.example.demo;\n\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.boot.test."
},
{
"path": "sendmail/pom.xml",
"chars": 1618,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "sendmail/src/main/java/com/example/mail/sendmail/SendMailApplication.java",
"chars": 495,
"preview": "package com.example.mail.sendmail;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.a"
},
{
"path": "sendmail/src/main/java/com/example/mail/sendmail/controller/MailController.java",
"chars": 976,
"preview": "package com.example.mail.sendmail.controller;\n\nimport com.example.mail.sendmail.dto.Email;\nimport com.example.mail.sendm"
},
{
"path": "sendmail/src/main/java/com/example/mail/sendmail/dto/Email.java",
"chars": 1620,
"preview": "package com.example.mail.sendmail.dto;\n\nimport java.io.File;\nimport java.util.List;\n\n/**\n * Email实体类\n *\n * @Author: lifq"
},
{
"path": "sendmail/src/main/java/com/example/mail/sendmail/service/MailService.java",
"chars": 220,
"preview": "package com.example.mail.sendmail.service;\n\n\nimport com.example.mail.sendmail.dto.Email;\n\npublic interface MailService {"
},
{
"path": "sendmail/src/main/java/com/example/mail/sendmail/service/impl/MailServiceImpl.java",
"chars": 2250,
"preview": "package com.example.mail.sendmail.service.impl;\n\nimport com.example.mail.sendmail.dto.Email;\nimport com.example.mail.sen"
},
{
"path": "sendmail/src/main/resources/application.properties",
"chars": 410,
"preview": "spring.mail.host = smtp.163.com\nspring.mail.port = 465\nspring.mail.username = xxx@163.com\nspring.mail.password = xxx\nspr"
},
{
"path": "spirng-boot-kaptcha/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "spirng-boot-kaptcha/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4629,
"preview": "/*\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE fi"
},
{
"path": "spirng-boot-kaptcha/.mvn/wrapper/maven-wrapper.properties",
"chars": 116,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip\n"
},
{
"path": "spirng-boot-kaptcha/mvnw",
"chars": 9114,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "spirng-boot-kaptcha/mvnw.cmd",
"chars": 5811,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "spirng-boot-kaptcha/pom.xml",
"chars": 1765,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "spirng-boot-kaptcha/src/main/java/com/example/demo/DemoApplication.java",
"chars": 317,
"preview": "package com.example.demo;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfig"
},
{
"path": "spirng-boot-kaptcha/src/main/java/com/example/demo/config/KaptchaConfig.java",
"chars": 1838,
"preview": "package com.example.demo.config;\n\n\nimport com.google.code.kaptcha.Constants;\nimport com.google.code.kaptcha.impl.Default"
},
{
"path": "spirng-boot-kaptcha/src/main/java/com/example/demo/config/WebConfig.java",
"chars": 0,
"preview": ""
},
{
"path": "spirng-boot-kaptcha/src/main/java/com/example/demo/controller/KaptchaController.java",
"chars": 2007,
"preview": "package com.example.demo.controller;\n\nimport com.google.code.kaptcha.Constants;\nimport com.google.code.kaptcha.Producer;"
},
{
"path": "spirng-boot-kaptcha/src/main/resources/application.properties",
"chars": 17,
"preview": "server.port=8081\n"
},
{
"path": "spirng-boot-kaptcha/src/test/java/com/example/demo/DemoApplicationTests.java",
"chars": 340,
"preview": "package com.example.demo;\n\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.boot.test."
},
{
"path": "spring-boot-encry/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "spring-boot-encry/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4629,
"preview": "/*\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE fi"
},
{
"path": "spring-boot-encry/.mvn/wrapper/maven-wrapper.properties",
"chars": 116,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip\n"
},
{
"path": "spring-boot-encry/mvnw",
"chars": 9114,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "spring-boot-encry/mvnw.cmd",
"chars": 5811,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "spring-boot-encry/pom.xml",
"chars": 2042,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "spring-boot-encry/src/main/java/com/example/springbootencry/SpringBootEncryApplication.java",
"chars": 350,
"preview": "package com.example.springbootencry;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot"
},
{
"path": "spring-boot-encry/src/main/java/com/example/springbootencry/advice/DecryptRequestBodyAdvice.java",
"chars": 2150,
"preview": "package com.example.springbootencry.advice;\n\nimport com.alibaba.fastjson.JSON;\nimport com.example.springbootencry.util.D"
},
{
"path": "spring-boot-encry/src/main/java/com/example/springbootencry/advice/EncryResponseBodyAdvice.java",
"chars": 2233,
"preview": "package com.example.springbootencry.advice;\n\nimport com.alibaba.fastjson.JSON;\nimport com.example.springbootencry.util.D"
},
{
"path": "spring-boot-encry/src/main/java/com/example/springbootencry/controller/TestController.java",
"chars": 1119,
"preview": "package com.example.springbootencry.controller;\n\nimport com.example.springbootencry.util.Result;\nimport org.slf4j.Logger"
},
{
"path": "spring-boot-encry/src/main/java/com/example/springbootencry/util/DesUtil.java",
"chars": 4099,
"preview": "package com.example.springbootencry.util;\n\nimport com.alibaba.fastjson.JSON;\nimport sun.misc.BASE64Decoder;\nimport sun.m"
},
{
"path": "spring-boot-encry/src/main/java/com/example/springbootencry/util/Result.java",
"chars": 801,
"preview": "package com.example.springbootencry.util;\n\nimport java.util.HashMap;\nimport java.util.Map;\n\npublic class Result implemen"
},
{
"path": "spring-boot-encry/src/main/resources/application.yml",
"chars": 21,
"preview": "server:\n port: 8888\n"
},
{
"path": "spring-boot-init/src/main/java/com/example/springbootinit/component/ApplicationRunnerImpl.java",
"chars": 543,
"preview": "package com.example.springbootinit.component;\n\nimport org.springframework.boot.ApplicationArguments;\nimport org.springfr"
},
{
"path": "spring-boot-init/src/main/java/com/example/springbootinit/component/CommandLineRunnerImpl.java",
"chars": 494,
"preview": "package com.example.springbootinit.component;\n\nimport org.springframework.boot.CommandLineRunner;\nimport org.springframe"
},
{
"path": "spring-boot-init/src/main/java/com/example/springbootinit/component/PostConstructInit.java",
"chars": 495,
"preview": "package com.example.springbootinit.component;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org"
},
{
"path": "spring-boot-init/src/main/java/com/example/springbootinit/component/TestService.java",
"chars": 270,
"preview": "package com.example.springbootinit.component;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.C"
},
{
"path": "spring-boot-init/src/test/java/com/example/springbootinit/Test.java",
"chars": 7803,
"preview": "package com.example.springbootinit;\n\nimport com.alibaba.fastjson.JSON;\nimport com.alibaba.fastjson.JSONArray;\nimport com"
},
{
"path": "spring-boot-jwt/src/main/java/com/example/springbootjwt/controller/LoginController.java",
"chars": 1152,
"preview": "package com.example.springbootjwt.controller;\n\nimport com.example.springbootjwt.entity.User;\nimport com.example.springbo"
},
{
"path": "spring-boot-jwt/src/main/java/com/example/springbootjwt/controller/SecureController.java",
"chars": 746,
"preview": "package com.example.springbootjwt.controller;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.web.bind.ann"
},
{
"path": "spring-boot-jwt/src/main/java/com/example/springbootjwt/entity/User.java",
"chars": 333,
"preview": "package com.example.springbootjwt.entity;\n\nimport lombok.AllArgsConstructor;\nimport lombok.Data;\n\n/**\n * @Description:\n "
},
{
"path": "spring-boot-jwt/src/main/java/com/example/springbootjwt/filter/JwtFilter.java",
"chars": 2084,
"preview": "package com.example.springbootjwt.filter;\n\nimport com.auth0.jwt.interfaces.Claim;\nimport com.example.springbootjwt.util."
},
{
"path": "spring-boot-jwt/src/main/java/com/example/springbootjwt/util/JwtUtil.java",
"chars": 2020,
"preview": "package com.example.springbootjwt.util;\n\nimport com.auth0.jwt.JWT;\nimport com.auth0.jwt.JWTVerifier;\nimport com.auth0.jw"
},
{
"path": "spring-boot-jwt/src/main/resources/application.yml",
"chars": 1,
"preview": "\n"
},
{
"path": "spring-boot-log/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "spring-boot-log/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4629,
"preview": "/*\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE fi"
},
{
"path": "spring-boot-log/.mvn/wrapper/maven-wrapper.properties",
"chars": 116,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip\n"
},
{
"path": "spring-boot-log/mvnw",
"chars": 9114,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "spring-boot-log/mvnw.cmd",
"chars": 5811,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "spring-boot-log/pom.xml",
"chars": 1693,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "spring-boot-log/src/main/java/com/example/springbootlog/SpringBootLogApplication.java",
"chars": 344,
"preview": "package com.example.springbootlog;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.a"
},
{
"path": "spring-boot-log/src/main/java/com/example/springbootlog/config/InterceptorConfig.java",
"chars": 734,
"preview": "package com.example.springbootlog.config;\n\nimport com.example.springbootlog.interceptor.SessionInterceptor;\nimport org.s"
},
{
"path": "spring-boot-log/src/main/java/com/example/springbootlog/controller/TestLogController.java",
"chars": 878,
"preview": "package com.example.springbootlog.controller;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.sprin"
},
{
"path": "spring-boot-log/src/main/java/com/example/springbootlog/interceptor/SessionInterceptor.java",
"chars": 1264,
"preview": "package com.example.springbootlog.interceptor;\n\nimport org.slf4j.MDC;\nimport org.springframework.web.servlet.ModelAndVie"
},
{
"path": "spring-boot-log/src/main/resources/application.yml",
"chars": 20,
"preview": "server:\n port: 8888"
},
{
"path": "spring-boot-log/src/main/resources/logback-spring.xml",
"chars": 1023,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<configuration>\n <property name=\"log.base\" value=\"./log/logback\"/>\n\n <appen"
},
{
"path": "spring-boot-log/src/test/java/com/example/springbootlog/SpringBootLogApplicationTests.java",
"chars": 233,
"preview": "package com.example.springbootlog;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spri"
},
{
"path": "spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/config/MybatisConfig.java",
"chars": 655,
"preview": "package com.example.springboot.mybatisannotation.config;\n\nimport org.mybatis.spring.boot.autoconfigure.ConfigurationCust"
},
{
"path": "spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/controller/UserController.java",
"chars": 967,
"preview": "package com.example.springboot.mybatisannotation.controller;\n\nimport com.example.springboot.mybatisannotation.entity.Use"
},
{
"path": "spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/dao/mapper/UserMapper.java",
"chars": 667,
"preview": "package com.example.springboot.mybatisannotation.dao.mapper;\n\n\nimport com.example.springboot.mybatisannotation.entity.Us"
},
{
"path": "spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/dao/mapper/UserRoleMapper.java",
"chars": 525,
"preview": "package com.example.springboot.mybatisannotation.dao.mapper;\n\n\nimport com.example.springboot.mybatisannotation.entity.Us"
},
{
"path": "spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/entity/User.java",
"chars": 283,
"preview": "package com.example.springboot.mybatisannotation.entity;\n\nimport lombok.Data;\n\n/**\n * User实体类\n *\n * @Author: java_suisui"
},
{
"path": "spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/entity/UserRole.java",
"chars": 244,
"preview": "package com.example.springboot.mybatisannotation.entity;\n\nimport lombok.Data;\n\n/**\n * UserRole实体类\n *\n * @Author: java_su"
},
{
"path": "spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/service/UserRoleService.java",
"chars": 225,
"preview": "package com.example.springboot.mybatisannotation.service;\n\n\nimport com.example.springboot.mybatisannotation.entity.UserR"
},
{
"path": "spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/service/UserService.java",
"chars": 270,
"preview": "package com.example.springboot.mybatisannotation.service;\n\n\nimport com.example.springboot.mybatisannotation.entity.User;"
},
{
"path": "spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/service/impl/UserRoleServiceImpl.java",
"chars": 1105,
"preview": "package com.example.springboot.mybatisannotation.service.impl;\n\nimport com.example.springboot.mybatisannotation.dao.mapp"
},
{
"path": "spring-boot-mybatis-annotation/src/main/java/com/example/springboot/mybatisannotation/service/impl/UserServiceImpl.java",
"chars": 1005,
"preview": "package com.example.springboot.mybatisannotation.service.impl;\n\nimport com.example.springboot.mybatisannotation.dao.mapp"
},
{
"path": "spring-boot-mybatis-annotation/src/main/resources/application.yml",
"chars": 243,
"preview": "spring:\n #数据源\n datasource:\n url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&zeroDateT"
},
{
"path": "spring-boot-mybatis-generator/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "spring-boot-mybatis-generator/pom.xml",
"chars": 3355,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "spring-boot-mybatis-generator/src/main/java/com/example/springbootmybatis/generator/SpringBootMybatisGeneratorApplication.java",
"chars": 384,
"preview": "package com.example.springbootmybatis.generator;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springfr"
},
{
"path": "spring-boot-mybatis-generator/src/main/java/com/example/springbootmybatis/generator/dao/UserMapper.java",
"chars": 352,
"preview": "package com.example.springbootmybatis.generator.dao;\n\nimport com.example.springbootmybatis.generator.entity.User;\nimport"
},
{
"path": "spring-boot-mybatis-generator/src/main/java/com/example/springbootmybatis/generator/dao/UserRoleMapper.java",
"chars": 376,
"preview": "package com.example.springbootmybatis.generator.dao;\n\nimport com.example.springbootmybatis.generator.entity.UserRole;\nim"
},
{
"path": "spring-boot-mybatis-generator/src/main/java/com/example/springbootmybatis/generator/entity/User.java",
"chars": 1856,
"preview": "package com.example.springbootmybatis.generator.entity;\n\nimport java.io.Serializable;\n\npublic class User implements Seri"
},
{
"path": "spring-boot-mybatis-generator/src/main/java/com/example/springbootmybatis/generator/entity/UserRole.java",
"chars": 1155,
"preview": "package com.example.springbootmybatis.generator.entity;\n\nimport java.io.Serializable;\n\npublic class UserRole implements "
},
{
"path": "spring-boot-mybatis-generator/src/main/resources/application.properties",
"chars": 1,
"preview": "\n"
},
{
"path": "spring-boot-mybatis-generator/src/main/resources/mapper/UserMapper.xml",
"chars": 2060,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org"
},
{
"path": "spring-boot-mybatis-generator/src/main/resources/mapper/UserRoleMapper.xml",
"chars": 1619,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org"
},
{
"path": "spring-boot-mybatis-generator/src/main/resources/mybatis-generator.xml",
"chars": 3065,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE generatorConfiguration\n PUBLIC \"-//mybatis.org//DTD MyBatis Gene"
},
{
"path": "spring-boot-mybatis-generator/src/test/java/com/example/springbootmybatis/generator/SpringBootMybatisGeneratorApplicationTests.java",
"chars": 260,
"preview": "package com.example.springbootmybatis.generator;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.tes"
},
{
"path": "spring-boot-mybatis-xml/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "spring-boot-mybatis-xml/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "spring-boot-mybatis-xml/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "spring-boot-mybatis-xml/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "spring-boot-mybatis-xml/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "spring-boot-mybatis-xml/pom.xml",
"chars": 2190,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "spring-boot-mybatis-xml/src/main/java/com/example/springboot/mybatisxml/SpringBootMybatisXmlApplication.java",
"chars": 474,
"preview": "package com.example.springboot.mybatisxml;\n\nimport org.mybatis.spring.annotation.MapperScan;\nimport org.springframework."
},
{
"path": "spring-boot-mybatis-xml/src/main/java/com/example/springboot/mybatisxml/controller/UserController.java",
"chars": 828,
"preview": "package com.example.springboot.mybatisxml.controller;\n\nimport com.example.springboot.mybatisxml.entity.User;\nimport com."
},
{
"path": "spring-boot-mybatis-xml/src/main/java/com/example/springboot/mybatisxml/dao/mapper/UserMapper.java",
"chars": 199,
"preview": "package com.example.springboot.mybatisxml.dao.mapper;\n\n\nimport com.example.springboot.mybatisxml.entity.User;\n\nimport ja"
},
{
"path": "spring-boot-mybatis-xml/src/main/java/com/example/springboot/mybatisxml/entity/User.java",
"chars": 275,
"preview": "package com.example.springboot.mybatisxml.entity;\n\nimport lombok.Data;\n/**\n * User实体类\n *\n * @Author: java_suisui\n *\n */\n"
},
{
"path": "spring-boot-mybatis-xml/src/main/java/com/example/springboot/mybatisxml/service/UserService.java",
"chars": 196,
"preview": "package com.example.springboot.mybatisxml.service;\n\n\nimport com.example.springboot.mybatisxml.entity.User;\n\nimport java."
},
{
"path": "spring-boot-mybatis-xml/src/main/java/com/example/springboot/mybatisxml/service/impl/UserServiceImpl.java",
"chars": 678,
"preview": "package com.example.springboot.mybatisxml.service.impl;\n\nimport com.example.springboot.mybatisxml.dao.mapper.UserMapper;"
},
{
"path": "spring-boot-mybatis-xml/src/main/resources/application.yml",
"chars": 404,
"preview": "spring:\n #数据源\n datasource:\n url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&zeroDateT"
},
{
"path": "spring-boot-mybatis-xml/src/main/resources/mapper/UserMapper.xml",
"chars": 712,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org"
},
{
"path": "spring-boot-mybatis-xml/src/main/resources/mybatis-config.xml",
"chars": 323,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE configuration\n PUBLIC \"-//mybatis.org//DTD Config 3.0//EN\"\n "
},
{
"path": "spring-boot-mybatis-xml/src/test/java/com/example/springboot/mybatisxml/SpringBootMybatisXmlApplicationTests.java",
"chars": 248,
"preview": "package com.example.springboot.mybatisxml;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.cont"
},
{
"path": "spring-boot-read-yml/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "spring-boot-read-yml/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4629,
"preview": "/*\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE fi"
},
{
"path": "spring-boot-read-yml/.mvn/wrapper/maven-wrapper.properties",
"chars": 116,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip\n"
},
{
"path": "spring-boot-read-yml/mvnw",
"chars": 9114,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "spring-boot-read-yml/mvnw.cmd",
"chars": 5811,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "spring-boot-read-yml/pom.xml",
"chars": 2030,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "spring-boot-read-yml/src/main/java/com/example/springbootreadyml/SpringBootReadYmlApplication.java",
"chars": 356,
"preview": "package com.example.springbootreadyml;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.bo"
},
{
"path": "spring-boot-read-yml/src/main/java/com/example/springbootreadyml/config/WxMpProperties.java",
"chars": 702,
"preview": "package com.example.springbootreadyml.config;\n\nimport lombok.Data;\nimport org.springframework.boot.context.properties.Co"
},
{
"path": "spring-boot-read-yml/src/main/java/com/example/springbootreadyml/controller/TestReadYmlController.java",
"chars": 840,
"preview": "package com.example.springbootreadyml.controller;\n\nimport com.alibaba.fastjson.JSON;\nimport com.example.springbootreadym"
},
{
"path": "spring-boot-read-yml/src/main/resources/application.yml",
"chars": 317,
"preview": "wechat:\n mp:\n configs:\n - appid: appid1\n secret: arr1_secret\n token: arr1_token\n aesKey: arr1_key\n"
},
{
"path": "spring-boot-read-yml/src/test/java/com/example/springbootreadyml/SpringBootReadYmlApplicationTests.java",
"chars": 241,
"preview": "package com.example.springbootreadyml;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context."
},
{
"path": "spring-boot-security/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "spring-boot-security/pom.xml",
"chars": 1871,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "spring-boot-security/src/main/java/com/example/springboot/security/SpringBootSecurityApplication.java",
"chars": 360,
"preview": "package com.example.springboot.security;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework."
},
{
"path": "spring-boot-security/src/main/java/com/example/springboot/security/config/MyPasswordEncoder.java",
"chars": 444,
"preview": "package com.example.springboot.security.config;\n\nimport org.springframework.security.crypto.password.PasswordEncoder;\n\np"
},
{
"path": "spring-boot-security/src/main/java/com/example/springboot/security/config/WebSecurityConfig.java",
"chars": 1485,
"preview": "package com.example.springboot.security.config;\n\nimport org.springframework.context.annotation.Configuration;\nimport org"
},
{
"path": "spring-boot-security/src/main/java/com/example/springboot/security/controller/AdminController.java",
"chars": 344,
"preview": "package com.example.springboot.security.controller;\n\nimport org.springframework.web.bind.annotation.GetMapping;\nimport o"
},
{
"path": "spring-boot-security/src/main/java/com/example/springboot/security/controller/AppController.java",
"chars": 350,
"preview": "package com.example.springboot.security.controller;\n\nimport org.springframework.web.bind.annotation.GetMapping;\nimport o"
},
{
"path": "spring-boot-security/src/main/java/com/example/springboot/security/controller/UserController.java",
"chars": 340,
"preview": "package com.example.springboot.security.controller;\n\nimport org.springframework.web.bind.annotation.GetMapping;\nimport o"
},
{
"path": "spring-boot-security/src/main/resources/application.properties",
"chars": 74,
"preview": "spring.security.user.name=java_suisui\nspring.security.user.password=123456"
},
{
"path": "spring-boot-security/src/test/java/com/example/springboot/security/SpringBootSecurityApplicationTests.java",
"chars": 244,
"preview": "package com.example.springboot.security;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.contex"
},
{
"path": "spring-boot-study-base/pom.xml",
"chars": 1808,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n xmlns:xsi=\"http://www"
},
{
"path": "spring-boot-study-base/src/main/java/com/study/day01/Config.java",
"chars": 533,
"preview": "package com.study.day01;\n\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotat"
},
{
"path": "spring-boot-study-base/src/main/java/com/study/day01/LinuxCondition.java",
"chars": 478,
"preview": "package com.study.day01;\n\nimport org.springframework.context.annotation.Condition;\nimport org.springframework.context.an"
},
{
"path": "spring-boot-study-base/src/main/java/com/study/day01/LinuxService.java",
"chars": 182,
"preview": "package com.study.day01;\n\n/**\n * @Auther: lifq\n * @Description:\n */\npublic class LinuxService implements ListService {\n "
},
{
"path": "spring-boot-study-base/src/main/java/com/study/day01/ListService.java",
"chars": 184,
"preview": "package com.study.day01;\n\nimport org.springframework.stereotype.Service;\n\n/**\n * @Auther: lifq\n * @Description:\n */\npubl"
},
{
"path": "spring-boot-study-base/src/main/java/com/study/day01/Main01.java",
"chars": 566,
"preview": "package com.study.day01;\n\nimport org.springframework.context.annotation.AnnotationConfigApplicationContext;\n\n/**\n * @Aut"
},
{
"path": "spring-boot-study-base/src/main/java/com/study/day01/WindowsCondition.java",
"chars": 482,
"preview": "package com.study.day01;\n\nimport org.springframework.context.annotation.Condition;\nimport org.springframework.context.an"
},
{
"path": "spring-boot-study-base/src/main/java/com/study/day01/WindowsService.java",
"chars": 185,
"preview": "package com.study.day01;\n\n/**\n * @Auther: lifq\n * @Description:\n */\npublic class WindowsService implements ListService {"
},
{
"path": "spring-boot-websocket/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "spring-boot-websocket/pom.xml",
"chars": 2213,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "spring-boot-websocket/src/main/java/com/example/springboot/websocket/SpringBootWebsocketApplication.java",
"chars": 363,
"preview": "package com.example.springboot.websocket;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework"
},
{
"path": "spring-boot-websocket/src/main/java/com/example/springboot/websocket/config/WebSocketConfig.java",
"chars": 752,
"preview": "package com.example.springboot.websocket.config;\n\nimport org.springframework.context.annotation.Bean;\nimport org.springf"
},
{
"path": "spring-boot-websocket/src/main/java/com/example/springboot/websocket/controller/WebSocketController.java",
"chars": 1354,
"preview": "package com.example.springboot.websocket.controller;\n\nimport com.example.springboot.websocket.util.WebSocketServer;\nimpo"
},
{
"path": "spring-boot-websocket/src/main/java/com/example/springboot/websocket/dto/SocketMessage.java",
"chars": 131,
"preview": "package com.example.springboot.websocket.dto;\n\npublic class SocketMessage {\n\n public String message;\n\n public Stri"
},
{
"path": "spring-boot-websocket/src/main/java/com/example/springboot/websocket/util/WebSocketServer.java",
"chars": 3284,
"preview": "package com.example.springboot.websocket.util;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.spri"
},
{
"path": "spring-boot-websocket/src/main/resources/application.properties",
"chars": 1,
"preview": "\n"
},
{
"path": "spring-boot-websocket/src/main/resources/static/index.html",
"chars": 1460,
"preview": "<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"UTF-8\">\n <title>websocket测试</title>\n <script src=\"http://libs.bai"
},
{
"path": "spring-boot-websocket/src/test/java/com/example/springboot/websocket/SpringBootWebsocketApplicationTests.java",
"chars": 246,
"preview": "package com.example.springboot.websocket;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.conte"
},
{
"path": "spring-cache-demo/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
}
]
// ... and 99 more files (download for full content)
About this extraction
This page contains the full source code of the suisui2019/springboot-study GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 299 files (505.8 KB), approximately 143.6k tokens, and a symbol index with 435 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.