首页 > 代码库 > 爱酷学习地址:http://www.icoolxue.com/search/view/album/1/12?q=netty

爱酷学习地址:http://www.icoolxue.com/search/view/album/1/12?q=netty

高并发:1 使用生成静态页面 新东网首页生成  2 使用缓存 redis  3 使用dubbo

zookeeper:

 

1. **保证事务顺序一致性**。

 

如果事务A在一台服务器上优先于事务B先执行,则在所有的服务器上事务A都将优先于事务B执行。由于网络是不可靠的,如果没有ZooKeeper如何保证在所有服务器上事务顺序一致将是一个很复杂的问题,而ZooKeeper使我们专注于业务逻辑,而不用过分关注于分布式协调。

 

2. **保证单调一致性**。

单调一致性是最终一致性的变种。在任何情况下,用户一旦读到某个数据的某次更新后的值,就不会再读到比这个值更旧的值了。

 

 

4 实现和继承:单继承

5 解析和生成xml方式:【DOM、SAX、JDOM、DOM4j简单使用介绍】

dom4j:

package cn.com.yy.dom4j;

import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;

public class Dom4JforXML {
    
    @Test
    public void test() throws Exception{
        //创建SAXReader对象
        SAXReader reader = new SAXReader();
        //读取文件 转换成Document
        Document document = reader.read(new File("src/cn/com/yy/dom4j/s.xml"));
        //获取根节点元素对象
        Element root = document.getRootElement();
        //遍历
        listNodes(root);
    }
    
    //遍历当前节点下的所有节点
    public void listNodes(Element node){
        System.out.println("当前节点的名称:" + node.getName());
        //首先获取当前节点的所有属性节点
        List<Attribute> list = node.attributes();
        //遍历属性节点
        for(Attribute attribute : list){
            System.out.println("属性"+attribute.getName() +":" + attribute.getValue());
        }
        //如果当前节点内容不为空,则输出
        if(!(node.getTextTrim().equals(""))){
             System.out.println( node.getName() + ":" + node.getText());  
        }
        //同时迭代当前节点下面的所有子节点
        //使用递归
        Iterator<Element> iterator = node.elementIterator();
        while(iterator.hasNext()){
            Element e = iterator.next();
            listNodes(e);
        }
    }
}

 

?JSTL常用标签?

spring :ioc 和 aop

ioc

由spring来负责控制对象的生命周期和对象间的关系

aop通过注解的方式:

  1. @Aspect  
  2. public class MyInterceptor {  
  3.     @Pointcut("execution(* com.bird.service.impl.PersonServiceBean.*(..))")  
  4.     private void anyMethod(){}//定义一个切入点  
  5.       
  6.     @Before("anyMethod() && args(name)")  
  7.     public void doAccessCheck(String name){  
  8.         System.out.println(name);  
  9.         System.out.println("前置通知");  
  10.     } 
  11. 然后在Spring的配置文件中继续配置Bean,需要打开AOP命名空间
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <beans xmlns="http://www.springframework.org/schema/beans"  
    3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    4.        xmlns:aop="http://www.springframework.org/schema/aop"  
    5.        xsi:schemaLocation="  
    6.        http://www.springframework.org/schema/beans   
    7.        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
    8.        http://www.springframework.org/schema/aop   
    9.        http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">  
    10.           
    11.         <aop:aspectj-autoproxy/>  
    12.     <bean id="personServiceBean" class="com.bird.service.impl.PersonServiceBean"/>  
    13.     <bean id="myInterceptor" class="com.bird.service.MyInterceptor"/>  
    14.      
    15. </beans>
      1. 然后建立一个Junit测试

         

        [java] view plain copy print?
        1. package junit.test;  
        2.   
        3. import org.junit.Test;  
        4. import org.springframework.context.ApplicationContext;  
        5. import org.springframework.context.support.ClassPathXmlApplicationContext;  
        6.   
        7. import com.bird.service.PersonServer;  
        8.   
        9. public class SpringAOPTest {  
        10.       
        11.     @Test  
        12.     public void inteceptorTest(){  
        13.         ApplicationContext ctx = new ClassPathXmlApplicationContext("beanAop.xml");  
        14.         PersonServer bean = (PersonServer)ctx.getBean("personServiceBean");  
        15.         bean.save(null);  
        16.     }  
        17.       
        18.   
        19. }

 

爱酷学习地址:http://www.icoolxue.com/search/view/album/1/12?q=netty