题目一
请仔细阅读下面代码,根据方法内的提示,在Begin - End区域内进行代码补充(有个pom.xml需要填充相关依赖),使用AOP记录Web登录请求日志,获取请求URL,请求方式以及请求后的返回内容。
1.在pom.xml中添加依赖
<!--Begin-->
<!-- Spring boot 整合AOP依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!--End-->
2.方法写出返回值
package com.yy.hello.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class Blog {
//添加路由映射到/Login并编写相应方法返回Welcome Login!
/********** Begin **********/
@RequestMapping("/Login")
public String Login(){
return "Welcome Login!";
}
/********** End **********/
}
3.从后台获取前端的请求并将请求的数据打印出来
package com.yy.hello;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@Aspect
@Component
public class BlogAspect {
private Logger logger = LoggerFactory.getLogger(getClass());
//定义切点
@Pointcut("execution(public * com.yy.hello.controller.Blog.Login())")
public void webLog() {
}
//前置通知,方法调用前被调用
@Before("webLog()")
public void doBefore(JoinPoint joinPoint) throws Throwable {
/********** Begin **********/
// 获取HttpServletRequest对象
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
// 打印所给要求中的固定格式
logger.info("---------------请求内容----------------");
//打印URL
logger.info("URL : "+request.getRequestURL());
//打印请求方式
logger.info("HTTP_METHOD : "+request.getMethod());
// 打印所给要求中的固定格式
logger.info("---------------请求内容----------------");
/********** End **********/
}
//在方法执行完结后打印返回内容
@AfterReturning(returning = "ret", pointcut = "webLog()")
public void doAfterReturning(Object ret) throws Throwable {
/********** Begin **********/
// 打印所给要求中的固定格式
logger.info("---------------返回内容----------------");
// 处理完请求,打印返回内容
logger.info("RESPONSE : "+ret);
// 打印所给要求中的固定格式
logger.info("---------------返回内容----------------");
/********** End **********/
}
}
题目二
将Spring整合Mybatis所需要的内容补充完整。
1、在JdbcConfig配置类中读取jdbc。properties文件中数据库四要素,用来构建连接池对象
2、在MybatisConfig配置类中构建SqlSessionFactoryBean和MapperScannerConfigurer
3、在SpringConfig配置类中添加Spring相关的配置
实现提示:
1、SpringConfig配置类中需要设置service的包扫描、加载properties配置文件、引入其他的配置类
2、jdbc.properties配置文件中需要将数据库连接信息改成自己的数据库连接信息
代码实现:
1、打开JdbcConfig配置类
//TODO:构建数据库连接池对象DataSource
public class JdbcConfig {
//1.驱动
@Value("${jdbc.driver}")
private String driver;
//2.url地址
@Value("${jdbc.url}")
private String url;
//3.用户名
@Value("${jdbc.username}")
private String userName;
//4.用户密码
@Value("${jdbc.password}")
private String password;
@Bean
//构建DataSource对象
public DataSource dataSource(){
DruidDataSource ds = new DruidDataSource();
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(userName);
ds.setPassword(password);
return ds;
}
}
2、打开MybatisConfig配置类进行配置
public class MybatisConfig {
//TODO:构建SqlSessionFactoryBean对象
@Bean
public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
sqlSessionFactoryBean.setTypeAliasesPackage("com.itheima.domain");
return sqlSessionFactoryBean;
}
//TODO:构建MapperScannerConfigurer对象
@Bean
public MapperScannerConfigurer mapperScannerConfigurer(){
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
mapperScannerConfigurer.setBasePackage("com.itheima.mapper");
return mapperScannerConfigurer;
}
}
3、打开SpringConfig配置类进行配置
@Configuration
@ComponentScan("com.itheima.service")
@PropertySource("classpath:jdbc.properties")
@Import({JdbcConfig.class,MybatisConfig.class})
public class SpringConfig {
}
本文展示了如何在Springboot应用中使用AOP记录Web登录请求的日志,包括添加相关依赖,编写Controller和Aspect切面来捕获请求信息。同时,也详细说明了Spring整合Mybatis的过程,包括在JdbcConfig中创建数据源,MybatisConfig中构建SqlSessionFactoryBean和MapperScannerConfigurer。

被折叠的 条评论
为什么被折叠?



