`
xxp3369
  • 浏览: 151312 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring_static_proxy

阅读更多
UserManager.java

package com.bjsxt.spring;

public interface UserManager {

	public void addUser(String username, String password);
	
	public void deleteUser(int id);
	
	public void modifyUser(int id, String username, String password);
	
	public String findUserById(int id);
}

UserManagerImpl.java

package com.bjsxt.spring;

public class UserManagerImpl implements UserManager {

	public void addUser(String username, String password) {
		System.out.println("-------UserManagerImpl.addUser()----------");
	}

	public void deleteUser(int id) {
		System.out.println("-------UserManagerImpl.deleteUser()----------");
	}

	public String findUserById(int id) {
		System.out.println("-------UserManagerImpl.findUserById()----------");
		return null;
	}

	public void modifyUser(int id, String username, String password) {
		System.out.println("-------UserManagerImpl.modifyUser()----------");
	}
	
//	private void checkSecurity() {
//		System.out.println("----------checkSecurity()---------------");
//	}
}



UserManagerImplProxy.java


package com.bjsxt.spring;

public class UserManagerImplProxy implements UserManager {
	
	private UserManager userManager;
	
	public UserManagerImplProxy(UserManager userManager) {
		this.userManager = userManager;
	}
	
	public void addUser(String username, String password) {
		checkSecurity();
		this.userManager.addUser(username, password);
	}

	public void deleteUser(int id) {
		checkSecurity();
		this.userManager.deleteUser(id);
	}

	public String findUserById(int id) {
		return null;
	}

	public void modifyUser(int id, String username, String password) {
	}
	
	private void checkSecurity() {
	System.out.println("----------checkSecurity()---------------");
 }
}

Client.java

package com.bjsxt.spring;

public class Client {

	public static void main(String[] args) {
		//UserManager userManager = new UserManagerImpl();
		
		UserManager userManager = new UserManagerImplProxy(new UserManagerImpl());
		//userManager.addUser("张三", "123");
		userManager.deleteUser(1);
	}
}
分享到:
评论

相关推荐

    王勇_JAVA教程_Spring_源代

    - `spring_static_proxy`可能包含了Spring的静态代理模式实现,这是AOP的一种方式,通过代理类来拦截方法调用并执行额外的操作。 这个教程的全面性和深度可以帮助开发者深入了解Spring框架,从基本的依赖注入到...

    Spring+Hibernate+Struts

    "spring_static_proxy"可能涉及Spring的动态代理,包括JDK动态代理和CGLIB代理,它们在AOP中的应用,如日志记录、性能监控和事务控制等。 总的来说,这个集成实例涵盖了Java Web开发中的关键技术,展示了如何利用...

    Spring_0300_JDKProxy

    标题"Spring_0300_JDKProxy"暗示我们将讨论Spring如何使用JDK的Proxy类来实现动态代理。在Spring中,`org.springframework.aop.framework.ProxyFactoryBean`或`org.springframework.aop.framework.ProxyFactory`可以...

    SPRING案例

    - **静态代理**:`spring_static_proxy`子目录下的例子展示了如何使用Java或CGLIB创建静态代理。静态代理是在编译时生成代理类,适用于已知目标对象的情况。 - **动态代理**:`spring_dynamic_proxy`则展示了JDK...

    Spring笔记

    6. **spring_dynamic_proxy**、**spring_static_proxy**:这部分可能涉及到Spring的两种代理模式,即JDK动态代理和CGLIB静态代理,它们在实现AOP时起着重要作用。 7. **spring_autowrire_byName**:这部分是关于...

    spring动态代理类的示范小版本,很简单的例子

    4. 示例中的"spring_static_proxy": 这个文件名可能是指示示例使用静态代理模式的。静态代理是在编译时就已经明确知道代理类和被代理类关系的方式,而Spring的动态代理则是在运行时生成代理类。在静态代理中,我们...

    spring学习笔记(七)

    文件名`test_spring_static_proxy`暗示了笔记可能包含了关于Spring静态代理的测试案例。通过这样的案例,你可以更好地理解如何在实际项目中应用代理模式,以及如何通过Spring框架创建和使用代理。 总结,Spring学习...

    08spring4_dynamicproxy.rar

    public static void main(String[] args) { // UserService userService=new UserServiceImpl(); // ProxyInovationHandler pih =new ProxyInovationHandler(); // pih.setTarget(userService); // ...

    spring小练习

    Spring的JdkDynamicProxy和Cglib就是静态代理的实现方式。 2. **动态代理(spring_AOP_2_dynamic)**:相比静态代理,动态代理在运行时生成代理,更加灵活。Spring的AspectJ库就提供了动态代理功能,可以在不修改...

    类似spring Aop的Proxy封装

    有一天在用回调模版的时候,忽然间又想到jdk自带的Proxy类似乎不是怎么好用,为何不把其做成回调模版呢,可以将其改造称类似spring Aop 代码如下: package com.fjx.proxy.up.test; import ...

    使用SpringCloud Zuul Proxy构建API网关.docx

    Spring Cloud Zuul Proxy 是一个非常流行的工具,用于构建这样的 API 网关。在本文中,我们将深入探讨如何使用 Spring Cloud Zuul Proxy 实现 API 网关,并分析其优点和缺点。 **为什么要使用 API 网关?** API ...

    spring jdk动态代理

    public static void main(String[] args) { MyService myService = new MyServiceImpl(); MyService proxy = (MyService) Proxy.newProxyInstance( MyService.class.getClassLoader(), new Class[]{MyService....

    Spring3 整合MyBatis3 配置多数据源动态选择SqlSessionFactory详细教程

    import static java.lang.reflect.Proxy.newProxyInstance; import static org.apache.ibatis.reflection.ExceptionUtil.unwrapThrowable; import static org.mybatis.spring.SqlSessionUtils.closeSqlSession; ...

    java Proxy 动态代理

    public static void main(String[] args) { MyInterface target = new MyTarget(); MyInterface proxy = (MyInterface) Proxy.newProxyInstance( MyInterface.class.getClassLoader(), new Class[]{MyInterface...

    Spring的静态代理和动态代理

    System.out.println("Static proxy doing something before"); } private void after() { System.out.println("Static proxy doing something after"); } } ``` 在这个例子中,`StaticProxy`是代理类,它在...

    spring boot整合vue

    4. **配置Spring Boot**:在`application.properties`或`application.yml`中设置`spring.web.resources.static-locations`,包含Vue的静态资源路径。 5. **运行Spring Boot应用**:启动Spring Boot应用,服务器会...

    在spring中获取代理对象代理的目标对象工具类

    public static Object getTarget(Object proxy) throws Exception { // 方法体... } ``` 这个方法接收一个代理对象作为参数,并返回其真实目标对象。 2. **判断代理类型**: 首先,通过`AopUtils`的`...

    简单模拟spring cglib代理

    public static void main(String[] args) { Enhancer enhancer = new Enhancer(); // 设置父类类型,即目标类 enhancer.setSuperclass(TargetClass.class); // 设置回调函数,此处是MethodInterceptor的实现 ...

    tomcat8 + nginx + memcached + cas 实现负载均衡的配置包

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; index index....

Global site tag (gtag.js) - Google Analytics