诤言无昧: 谁在助长“妖魔化”网戒专家杨永信的网络戾气?!

​​      最近,因为杨永信主持了一次精神科专业培训会,再一次被恶媒炒上热搜。令人费解的是,以前已经被辟谣的种种不实炒作,又被拿出来翻炒,各种人身攻击无所不用其极!而相关部门隐忍沉默,这在舆论环境和政治生态日益清明的今天,真是令人费解!Continue reading

spring框架知识整理

Spring
—————————————————-
    – 三层架构
    ————————————————
        · Spring Web (SpringMvc)
        ——————————————–
            – Model (xxxxDomain.java) 
                [数据层]
                [业务逻辑]      ↓ 部分拆至service层
                [数据库操作]    ↓ 拆至dao层
            – View (xxxx.jsp) 
                [显示层]
            – Controller (xxxxController.java) 
                [与service层交换数据]
                [通过model层与view层连接, 以显示数据]
        ——————————————–
        · service (xxxxService.java) 
            [业务逻辑]
        · dao (xxxxDao.java) 
            [数据库操作]
    ————————————————-
    – IOC (控制反转) *[1]
        [通过依赖注入 (DI) 将创建对象权交给框架]
        [使用配置文件或注解]
    – AOP (面向切面) *[2]
        [将于业务无关的边缘的逻辑 (如输出日志) 提取出来]
        [通过注入的方式在对应函数执行前后注入这些逻辑]
—————————————————–
*[1]. 
    XxxxxController.java
        @Autowired
        private XxxxxService xxxxxService;
*[2]. 
    applicationContext-miyabi-aop.xml
        <aop:pointcut id=”daoAopSearchCount” expression=”execution(int *..*Dao.searchCount*(..)) and !execution(int com.globaldenso.ai.library..*Dao.searchCount*(..))” />
        <aop:advisor pointcut-ref=”daoAopSearchCount” advice-ref=”searchCountLimitAdvice” />
    SearchCountLimitAdvice.java
        …
            public void afterReturning(
                Object returnValue, 
                Method method, 
                Object[] args,
                Object target) throws 
                Throwable {
        …
                if (result == 0) {
                    throw new ApplicationException(“xxx”);
                } else if (SEARCH_COUNT_LIMIT < result) {
                    throw new ApplicationException(“xxx”);
                }
                
            }
        …