SpringBoot入门笔记(二)IDEA下springboot项目spring+mybatis+sqlserver+log4j+简单登录验证拦截器的框架搭建

8 篇文章 1 订阅
3 篇文章 0 订阅

 

2018年09月03日 09:16:44 Spring是框架不是春天 阅读数:144

IDEA下springboot项目spring+mybatis+sqlserver+log4j+简单登录验证拦截器的框架搭建

先贴一个项目的目录结构

Attention:templates.html5是templates目录下新建了一个html5目录

1.项目创建

这个简单,选择jdk目录,填写项目信息,选择springboot版本,勾选一些需要的包依赖,基本上就是一直next,然后finish就好了,略过。。。

2.pom.xml

项目创建时,会将你选择的springboot包依赖加进去,我们需要的是加入一些创建时没有的依赖

2.1 数据库连接池--druid

关于druid数据库连接池的优点和性能就先不说,百度一下,你就知道

 
  1. <dependency>

  2. <groupId>com.alibaba</groupId>

  3. <artifactId>druid</artifactId>

  4. <version>1.1.3</version>

  5. </dependency>

2.2 数据返回格式--JSONObject

 
  1. <dependency>

  2. <groupId>com.alibaba</groupId>

  3. <artifactId>fastjson</artifactId>

  4. <version>1.1.36</version>

  5. </dependency>

2.3日志输出--log4j

 
  1. <!-- Log start -->

  2. <!-- spring boot start -->

  3. <dependency>

  4. <groupId>org.springframework.boot</groupId>

  5. <artifactId>spring-boot-starter</artifactId>

  6. <exclusions>

  7. <!-- 排除自带的logback依赖 -->

  8. <exclusion>

  9. <groupId>org.springframework.boot</groupId>

  10. <artifactId>spring-boot-starter-logging</artifactId>

  11. </exclusion>

  12. </exclusions>

  13. </dependency>

  14.  
  15. <!-- springboot-log4j -->

  16. <dependency>

  17. <groupId>org.springframework.boot</groupId>

  18. <artifactId>spring-boot-starter-log4j</artifactId>

  19. <version>1.3.8.RELEASE</version>

  20. </dependency>

  21. <!-- Log end -->

引入log4j之前首先要排除springboot自带的logback依赖,在创建Spring Boot工程时,我们引入了spring-boot-starter,其中包含了spring-boot-starter-logging,该依赖内容就是Spring Boot默认的日志框架Logback。

附上一份log4j.properties的文件

 
  1. #logger level

  2. log4j.rootCategory=DEBUG,stdout,DebugAppender,InfoAppender,ErrorAppender

  3. log4j.debug=true

  4. log4j.appender.stdout=org.apache.log4j.ConsoleAppender

  5. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

  6. log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n

  7. #logger input file

  8. log4j.logger.DebugAppender.access=DEBUG

  9. log4j.appender.DebugAppender=org.apache.log4j.DailyRollingFileAppender

  10. log4j.appender.DebugAppender.File=../logs/a.log

  11. log4j.appender.DebugAppender.layout=org.apache.log4j.PatternLayout

  12. log4j.appender.DebugAppender.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n

  13.  
  14. #logger input file

  15. log4j.logger.InfoAppender.access=INFO

  16. log4j.appender.InfoAppender=org.apache.log4j.DailyRollingFileAppender

  17. log4j.appender.InfoAppender.File=../logs/b.log

  18. log4j.appender.InfoAppender.layout=org.apache.log4j.PatternLayout

  19. log4j.appender.InfoAppender.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n

  20.  
  21. #error log input file

  22. log4j.logger.ErrorAppender.access=ERROR

  23. log4j.appender.ErrorAppender=org.apache.log4j.DailyRollingFileAppender

  24. log4j.appender.ErrorAppender.File=../logs/c.log

  25. log4j.appender.ErrorAppender.Append = true

  26. log4j.appender.ErrorAppender.threshold = ERROR

  27. log4j.appender.ErrorAppender.layout=org.apache.log4j.PatternLayout

  28. log4j.appender.ErrorAppender.layout.ConversionPattern=%d{MM-dd HH:mm:ss.SSS} %c %-5p - %m%n

pom.xml到这里就基本结束了,贴上一张log4j的日志打印图。

3.简单的登录验证拦截器

自定义一个登录验证拦截器LoginInterceptor,实现HandlerInterceptor接口

3.1 LoginInterceptor.java

 
  1. private static final Logger logger = LoggerFactory.getLogger(LoginInterceptor.class);

  2.  
  3. //在目标方法执行前执行

  4. @Override

  5. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

  6. System.err.println("------preHandle------");

  7.  
  8. System.out.println("ContextPath" + request.getContextPath());

  9. System.out.println("getRequestURI" + request.getRequestURI());

  10.  
  11. //获取session

  12. HttpSession session = request.getSession(true);

  13. //判断用户是否存在,不存在就跳转到登录页面

  14. if (session.getAttribute("username")==null){

  15. String uri = request.getRequestURI();

  16. System.out.println(uri);

  17. String url = request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/index";

  18. System.out.println(url);

  19. response.sendRedirect(request.getContextPath()+"/index");

  20. return false;

  21. }

  22.  
  23. return true;

  24. }

  25.  
  26. //在目标方法执行后执行,但在请求返回前,我们仍然可以对 ModelAndView进行修改

  27. @Override

  28. public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

  29.  
  30. }

  31.  
  32. // 在请求已经返回之后执行

  33. @Override

  34. public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

  35.  
  36. }

3.2 登录配置类--LoginConfig.java

继承WebMvcConfigurerAdapter类,此类一定要记得加上@Configuration注解,否则无法生效

 
  1. public LoginConfig() {

  2. super();

  3. }

  4.  
  5. @Override

  6. public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {

  7. configurer.enable();

  8. }

  9.  
  10. @Override

  11. public void addInterceptors(InterceptorRegistry registry) {

  12. //拦截规则:除了excludePathPatterns中地址,其他都拦截判断

  13. registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**").excludePathPatterns("/index");

  14. super.addInterceptors(registry);

  15. }

  16.  
  17. @Override

  18. public void addResourceHandlers(ResourceHandlerRegistry registry) {

  19. registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");

  20. registry.addResourceHandler("/templates/**").addResourceLocations("classpath:/templates/");

  21. super.addResourceHandlers(registry);

  22. }

4.结语

大概就是这样,中间漏了一部分内容,等有空闲时补上。新手上路,多多指教。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值