以下程序记录增删改操作
1.目标类LoginService.java
public class LogService {
@SuppressWarnings("unchecked")
public void logOption(JoinPoint jp) {
StringBuilder str = new StringBuilder();
str.append("method:" + jp.getSignature().getName() + "\n");
HttpServletRequest request = ServletActionContext.getRequest();
Iterator<Entry<String, Object>> it = request.getParameterMap()
.entrySet().iterator();
boolean isFirst = true;
str.append(" param:");
while (it.hasNext()) {
Entry<String, Object> entry = it.next();
if (isFirst) {
isFirst = false;
} else {
str.append(";");
}
str.append(entry.getKey() + "=");
Object[] allValue = (Object[]) entry.getValue();
for (int i = 0; i < allValue.length; i++) {
if (i != 0) {
str.append(",");
}
str.append(allValue[i].toString());
}
}
System.out.println(str.toString());
}
}
2.在applicationContext.xml进行配置
<!-- 目标类 --> <bean id="logService" class="com.iteye.blog.service.LogService"></bean> <!-- 声名式事务 --> <aop:config> <aop:aspect id="myAspect" ref="logService"> <aop:pointcut <!-- 注意:这里要写拦截方法的路径 --> expression="execution(* com.iteye.blog.service.*.save*(..))||execution(* com.iteye.blog.service.*.delete*(..))||com.iteye.blog.service.*.update*(..))" id="logPointCut" /> <aop:after method="logOption" pointcut-ref="logPointCut" /> </aop:aspect> </aop:config>
注意:建议使用<aop:config proxy-target-class="true" />,使用CGLIB代理类
相关推荐
Spring的事务管理确保了在数据库操作中的原子性,确保增删改操作的完整性。 Hibernate作为ORM(对象关系映射)框架,将Java对象与数据库表进行映射,简化了数据库操作。在描述中提到了"使用了hibernate分页",这...
在这个“webwork增删改简单入门例子(+spring+ibatis)”中,我们将探讨如何结合Spring和iBatis这两个流行的技术来构建一个基础的CRUD(创建、读取、更新、删除)应用。 1. WebWork基础知识: - 控制器:WebWork的...
在增删改操作中,Spring的Bean管理可以帮助你轻松地获取和设置数据访问对象(DAO),并通过事务管理确保数据的一致性。例如,Spring的`@Transactional`注解可以用来标记一个方法或类,使其在执行时自动开启和提交...
Struts2作为前端控制器,接收HTTP请求并转发到相应的Action处理,Action再通过Spring管理的MyBatis SqlSessionFactory创建SqlSession,执行SQL语句,完成对数据库的操作。MyBatis通过XML配置文件或注解定义SQL语句,...
AOP则是Spring框架的核心特性,用于在不修改原有代码的情况下,对特定行为(如日志记录、权限检查等)进行横切关注。 在Spring Boot项目中,我们可以通过AOP来实现读写分离。首先,我们需要定义两个数据源,一个...
5. **Interceptor**: 拦截器允许在请求处理前后进行预处理和后处理,例如权限验证、日志记录等。 6. **ModelAndView**: 用于将模型数据和视图名称一起返回给DispatcherServlet。 **Hibernate框架** Hibernate是一个...
图书管理、编辑功能则涉及到数据库的增删改操作,通过Spring的DAO接口和MyBatis的Mapper接口实现。读者管理模块包括读者信息的录入、修改和删除,同时还需要考虑到权限验证。图书的借阅与归还功能需要记录借阅状态,...
此外,Spring还提供了AOP(面向切面编程)功能,用于实现如日志记录、权限检查等横切关注点。Spring还集成了其他框架,如MyBatis、Quartz等,形成了一个全面的企业级应用解决方案。 在这个"毕业设计struts+...
在众多情况下,日志的管理是通过拦截器来完成的,不过通过STRUTS2的拦截器编码比较繁琐,在此通过spring的aop来处理,在贫血模式下将代码量降到最低,同时配置文件均可共用,从此,不用为日志管理浪费任何时间。
"增"是指添加新记录,"删"是删除指定记录,"改"是修改已有记录,"查"则是查询和检索数据。这些操作在MyBatis中通常通过Mapper接口和XML配置文件实现,SpringMVC控制器负责调用Service层的方法,Service层再通过...
Spring框架则是一个全面的企业级应用框架,它的核心功能包括依赖注入(DI)和面向切面编程(AOP)。在本示例中,Spring用于管理Struts2中的Action类,通过DI来注入需要的服务,如数据库操作的DAO(Data Access ...
AOP则用于实现如日志记录、性能监控等跨切面关注点。 Hibernate是SSH中的持久层框架,它简化了Java对象与数据库表之间的映射工作,通过ORM(对象关系映射)技术实现了数据的CRUD操作。开发者只需定义实体类和映射...
此外,Spring还提供AOP(面向切面编程),可以方便地实现日志记录、事务管理等功能。 3. **Hibernate**:作为持久层框架,Hibernate简化了与数据库的交互。我们需要配置hibernate.cfg.xml文件,定义数据库连接参数...
SSM(Spring、SpringMVC、MyBatis)是一个经典的Java web开发框架组合,用于构建高效、...在实际项目中,还会涉及到异常处理、权限控制、日志记录等多个方面,但SSM提供了良好的扩展性和灵活性,便于整合其他功能组件。
在本系统中,Spring可能还用到了AOP(面向切面编程)来处理如日志记录、事务管理等横切关注点。 Struts作为MVC(模型-视图-控制器)架构的一部分,主要处理HTTP请求,控制应用程序的流程,并将数据传递给视图层展示...
此外,使用事务控制确保数据一致性,使用缓存提高性能,使用日志记录异常信息,以及进行单元测试等都是提升SSH项目质量的关键。 7. **优化技巧**:对于多表查询,合理设计数据库索引,避免全表扫描;使用JOIN而非子...
5. AOP:面向切面编程,例如日志记录、权限控制等可以通过AOP实现。 6. Spring Security:可能用于用户登录验证和权限控制,提供安全的访问机制。 总之,这个项目展示了如何结合Spring MVC、Ibatis以及Spring注解,...
在系统中,Hibernate的Session接口处理了与数据库的会话,包括查询、增删改等操作,减少了手动编写SQL的繁琐工作,提高了开发效率。 这三者之间的协作流程大致如下:用户发起请求,Struts接收到请求后调用由Spring...
总的来说,通过Java、Spring、AOP和MyBatis的组合,我们可以构建出一套高效且易于维护的数据操作系统,实现对数据库的增删改查功能。这样的架构不仅简化了开发过程,也提高了代码的可读性和可扩展性。在实际项目中,...