17、Spring实战:利用AOP实现日志监控
来源:互联网 发布:java判断法定节假日 编辑:程序博客网 时间:2024/06/06 06:49
本例用利用AOP来实现记录用户登录的功能。
登录业务
这里我们简单写,在实际使用时与此类似
//用户Beanpackage com.codestd.springstudy.log;public class User { private String username; private String password; public User() { super(); } public User(String username, String password) { super(); this.username = username; this.password = password; }}
业务类
//自定义登录异常public class AuthenticationException extends Exception { private static final long serialVersionUID = -5160585885606759616L; public AuthenticationException(String message) { super(message); } }//接口public interface UserService { public void login(User user) throws AuthenticationException;}//实现类public class UserServiceImpl implements UserService { @Override public void login(User user) throws AuthenticationException { if("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())){ System.out.println("登录成功"); }else{ throw new AuthenticationException("用户名密码错误!"); } }}
AOP切面
@Aspectpublic class LoginMonitor { @Pointcut("execution(* com.codestd.springstudy.log.UserService.login(..))") public void loginPointcut(){}; @Around("loginPointcut()") public Object afterLogin(ProceedingJoinPoint point) throws Throwable{ User user = (User) point.getArgs()[0]; System.out.println(user.getUsername()+"请求登录系统"); Object obj ; try { obj = point.proceed(); } catch (Throwable e) { System.out.println(user.getUsername()+"登录失败!"+e.getMessage()); throw e; } System.out.println(user.getUsername()+"已登录系统"); return obj; }}
配置
<bean id="userService" class="com.codestd.springstudy.log.UserServiceImpl" /><bean class="com.codestd.springstudy.log.LoginMonitor" /><aop:aspectj-autoproxy /> <!-- 支持@Aspect注解 -->
测试
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:log/applicationContext.xml"})public class UserServiceImplTest { @Autowired private UserService userService; @Test public void testLogin() throws AuthenticationException { User user = new User("admin","admin"); userService.login(user); }}/*admin请求登录系统登录成功admin已登录系统------------------------admin请求登录系统admin登录失败!用户名密码错误!*/
1 3
- 17、Spring实战:利用AOP实现日志监控
- 利用spring AOP注解实现日志管理
- 利用Spring AOP监控方法(二)日志存放位置
- 利用Spring AOP监控方法
- 利用spring AOP实现每个请求的日志输出
- 利用Spring AOP实现业务和异常日志记录
- spring aop+zabbix做日志监控
- 修改别人写的利用AOP实现日志监控的问题
- spring aop实现日志功能
- Spring AOP实现日志记录
- Spring -aop 实现系统日志
- Spring AOP实现日志记录
- Spring AOP实现日志管理
- spring aop实现日志管理
- 利用Spring AOP进行日志管理
- 利用Spring的AOP进行日志记录
- 利用spring AOP功能进行日志管理
- 利用spring AOP原理 实现 DAO层SQL的监控,辅助开发
- maven搭建ssm分模块框架 (myeclipse版) (二)
- introduce myself
- HElib 库如何使用?加密解密数据
- zy-题目总结
- poj 3069贪心~
- 17、Spring实战:利用AOP实现日志监控
- log4j-每天日志文件加日期后缀
- c++实验6-字符串操作
- Struts2 常量配置
- 剑指offer之字符串转换为数字
- blender手册快捷键和操作技巧五
- MAC 下Android Stdio的NDK环境搭建以及开发初步
- 地位都是自己主动挣来的
- JAVA学习总结九