-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from xhnya/dev
Dev
- Loading branch information
Showing
486 changed files
with
98,774 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
<?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.3.5.RELEASE</version> | ||
<relativePath/> <!-- lookup parent from repository --> | ||
</parent> | ||
<groupId>com.xhnya</groupId> | ||
<artifactId>blog</artifactId> | ||
<version>0.0.1-SNAPSHOT</version> | ||
|
||
<name>blog</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-thymeleaf</artifactId> | ||
</dependency> | ||
<dependency> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-starter-web</artifactId> | ||
</dependency> | ||
<!-- 阿里云oss依赖 --> | ||
<dependency> | ||
<groupId>com.aliyun.oss</groupId> | ||
<artifactId>aliyun-sdk-oss</artifactId> | ||
<version>3.10.2</version> | ||
</dependency> | ||
<!-- 日期工具栏依赖 --> | ||
<dependency> | ||
<groupId>joda-time</groupId> | ||
<artifactId>joda-time</artifactId> | ||
<version>2.10.1</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-devtools</artifactId> | ||
<scope>runtime</scope> | ||
<optional>true</optional> | ||
</dependency> | ||
<dependency> | ||
<groupId>mysql</groupId> | ||
<artifactId>mysql-connector-java</artifactId> | ||
<scope>runtime</scope> | ||
</dependency> | ||
|
||
|
||
|
||
<dependency> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-starter-test</artifactId> | ||
<scope>test</scope> | ||
<exclusions> | ||
<exclusion> | ||
<groupId>org.junit.vintage</groupId> | ||
<artifactId>junit-vintage-engine</artifactId> | ||
</exclusion> | ||
</exclusions> | ||
</dependency> | ||
|
||
<dependency> | ||
<groupId>com.atlassian.commonmark</groupId> | ||
<artifactId>commonmark</artifactId> | ||
<version>0.14.0</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>com.atlassian.commonmark</groupId> | ||
<artifactId>commonmark-ext-heading-anchor</artifactId> | ||
<version>0.14.0</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>com.atlassian.commonmark</groupId> | ||
<artifactId>commonmark-ext-gfm-tables</artifactId> | ||
<version>0.14.0</version> | ||
</dependency> | ||
|
||
<dependency> | ||
<groupId>org.hibernate.validator</groupId> | ||
<artifactId>hibernate-validator</artifactId> | ||
<version>6.0.13.Final</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>javax.validation</groupId> | ||
<artifactId>validation-api</artifactId> | ||
<version>2.0.1.Final</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>org.assertj</groupId> | ||
<artifactId>assertj-core</artifactId> | ||
</dependency> | ||
|
||
|
||
<dependency> | ||
<groupId>cn.ucloud.ufile</groupId> | ||
<artifactId>ufile-client-java</artifactId> | ||
<version>2.1.1</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>org.projectlombok</groupId> | ||
<artifactId>lombok</artifactId> | ||
<version>1.18.12</version> | ||
<scope>compile</scope> | ||
</dependency> | ||
<dependency> | ||
<groupId>commons-fileupload</groupId> | ||
<artifactId>commons-fileupload</artifactId> | ||
<version>1.4</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>javax.servlet</groupId> | ||
<artifactId>javax.servlet-api</artifactId> | ||
<version>4.0.1</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>com.vaadin.external.google</groupId> | ||
<artifactId>android-json</artifactId> | ||
<version>0.0.20131108.vaadin1</version> | ||
<scope>compile</scope> | ||
</dependency> | ||
|
||
</dependencies> | ||
|
||
<build> | ||
<plugins> | ||
<plugin> | ||
<groupId>org.springframework.boot</groupId> | ||
<artifactId>spring-boot-maven-plugin</artifactId> | ||
</plugin> | ||
</plugins> | ||
</build> | ||
|
||
</project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package com.xhnya.blog; | ||
|
||
import org.springframework.boot.SpringApplication; | ||
import org.springframework.boot.autoconfigure.SpringBootApplication; | ||
import org.springframework.boot.builder.SpringApplicationBuilder; | ||
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; | ||
|
||
@SpringBootApplication | ||
public class BlogApplication { | ||
|
||
public static void main(String[] args) { | ||
SpringApplication.run(BlogApplication.class, args); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package com.xhnya.blog; | ||
|
||
|
||
import org.springframework.http.HttpStatus; | ||
import org.springframework.web.bind.annotation.ResponseStatus; | ||
|
||
/** | ||
* @author xhn | ||
* @data 2020/11/13 - 22:09 | ||
*/ | ||
@ResponseStatus(HttpStatus.NOT_FOUND) | ||
public class NotFoundException extends RuntimeException { | ||
|
||
public NotFoundException() { | ||
} | ||
|
||
public NotFoundException(String message) { | ||
super(message); | ||
} | ||
|
||
public NotFoundException(String message, Throwable cause) { | ||
super(message, cause); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
package com.xhnya.blog.aspect; | ||
|
||
import org.aspectj.lang.JoinPoint; | ||
import org.aspectj.lang.annotation.*; | ||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
import org.springframework.stereotype.Component; | ||
import org.springframework.web.context.request.RequestContextHolder; | ||
import org.springframework.web.context.request.ServletRequestAttributes; | ||
|
||
import javax.servlet.http.HttpServletRequest; | ||
import java.util.Arrays; | ||
|
||
/** | ||
* @author xhn | ||
* @data 2020/11/14 - 10:54 | ||
*/ | ||
@Aspect | ||
@Component | ||
public class LogAspect { | ||
|
||
private final Logger logger = LoggerFactory.getLogger(this.getClass()); | ||
|
||
|
||
@Pointcut("execution(* com.xhnya.blog.web.*.*(..))") | ||
public void log() { | ||
} | ||
|
||
@Before("log()") | ||
public void doBefore(JoinPoint joinPoint) { | ||
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); | ||
HttpServletRequest request = attributes.getRequest(); | ||
String url = request.getRequestURL().toString(); | ||
String ip = request.getRemoteAddr(); | ||
String classMethod = joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName(); | ||
Object[] args = joinPoint.getArgs(); | ||
RequestLog requestLog = new RequestLog(url, ip, classMethod, args); | ||
|
||
|
||
logger.info("Request : {}", requestLog); | ||
} | ||
|
||
@After("log()") | ||
public void doAfter() { | ||
//logger.info("--------doAfter--------"); | ||
} | ||
|
||
@AfterReturning(returning = "result", pointcut = "log()") | ||
public void doAfterReturn(Object result) { | ||
logger.info("Result : {}", result); | ||
} | ||
|
||
private class RequestLog { | ||
private String url; | ||
private String ip; | ||
private String classMethod; | ||
private Object[] args; | ||
|
||
public RequestLog(String url, String ip, String classMethod, Object[] args) { | ||
this.url = url; | ||
this.ip = ip; | ||
this.classMethod = classMethod; | ||
this.args = args; | ||
} | ||
|
||
@Override | ||
public String toString() { | ||
return "{" + | ||
"url='" + url + '\'' + | ||
", ip='" + ip + '\'' + | ||
", classMethod='" + classMethod + '\'' + | ||
", args=" + Arrays.toString(args) + | ||
'}'; | ||
} | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
package com.xhnya.blog.dao; | ||
|
||
import com.xhnya.blog.po.Blog; | ||
import org.springframework.data.domain.Page; | ||
import org.springframework.data.domain.Pageable; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; | ||
import org.springframework.data.jpa.repository.Modifying; | ||
import org.springframework.data.jpa.repository.Query; | ||
import org.springframework.transaction.annotation.Transactional; | ||
|
||
import java.util.List; | ||
|
||
/** | ||
* @author xhn | ||
* @data 2020/11/19 - 16:36 | ||
*/ | ||
|
||
public interface BlogRepository extends JpaRepository<Blog, Long>, JpaSpecificationExecutor<Blog> { | ||
|
||
//select * from t_blog b where recommend = true order by update_time,nativeQuery = true | ||
@Query("select b from Blog b where b.recommend= true") | ||
List<Blog> findTop(Pageable pageable); | ||
|
||
@Query("select b from Blog b where b.title like ?1 or b.content like ?1") | ||
Page<Blog> findByQuery(String query, Pageable pageable); | ||
|
||
|
||
@Transactional | ||
@Modifying | ||
@Query("update Blog b set b.views = b.views+1 where b.id = ?1") | ||
int updateViews(Long id); | ||
|
||
@Query("select function('date_format',b.updateTime,'%Y') as year from Blog b group by function('date_format',b.updateTime,'%Y') order by year desc ") | ||
List<String> findGroupYear(); | ||
|
||
@Query("select b from Blog b where function('date_format',b.updateTime,'%Y') = ?1") | ||
List<Blog> findByYear(String year); | ||
|
||
Blog getBlogById(Long id); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
package com.xhnya.blog.dao; | ||
|
||
import com.xhnya.blog.po.Comment; | ||
import org.springframework.data.domain.Sort; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
|
||
import java.util.List; | ||
|
||
/** | ||
* @author xhn | ||
* @data 2020/11/22 - 20:31 | ||
*/ | ||
public interface CommentRepository extends JpaRepository<Comment, Long> { | ||
|
||
List<Comment> findByBlogIdAndParentCommentNull(Long blogId, Sort sort); | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
package com.xhnya.blog.dao; | ||
|
||
import com.xhnya.blog.po.Tag; | ||
import com.xhnya.blog.po.Type; | ||
import org.springframework.data.domain.Pageable; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; | ||
import org.springframework.data.jpa.repository.Query; | ||
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; | ||
|
||
import java.util.List; | ||
|
||
|
||
public interface TagRepository extends JpaRepository<Tag, Long>{ | ||
Tag findByTagName(String name); | ||
|
||
@Query("select t from Tag t") | ||
List<Tag> findTop(Pageable pageable); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package com.xhnya.blog.dao; | ||
|
||
import com.xhnya.blog.po.Type; | ||
import org.springframework.data.domain.Pageable; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
import org.springframework.data.jpa.repository.Query; | ||
|
||
import java.util.List; | ||
|
||
/** | ||
* @author xhn | ||
* @data 2020/11/17 - 20:12 | ||
*/ | ||
public interface TypeRepository extends JpaRepository<Type, Long> { | ||
|
||
|
||
Type findByName(String name); | ||
|
||
@Query("select t from Type t") | ||
List<Type> findTop(Pageable pageable); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
package com.xhnya.blog.dao; | ||
|
||
import com.xhnya.blog.po.User; | ||
import org.springframework.data.jpa.repository.JpaRepository; | ||
|
||
/** | ||
* @author xhn | ||
* @data 2020/11/15 - 20:02 | ||
*/ | ||
public interface UserRepository extends JpaRepository<User, Long> { | ||
User findByUsernameAndPassword(String username, String password); | ||
} |
Oops, something went wrong.