作业四

该博客主要探讨了Spring框架中的配置文件`applicationContext.xml`,详细介绍了如何配置及实例化各种类和接口,包括Speak类、TestSpeak、Print类、Paper接口及其实现类A4Paper和B5Paper,还有Lnk接口以及其实现类colorLnk和GrayLnk。此外,还讨论了用于增强功能的类以及UserDao和UserService接口的实现,如UserDaoImpl和UserServiceImpl。

在这里插入图片描述
applicationContext.xml

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:task="http://www.springframework.org/schema/task"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.1.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
        http://www.springframework.org/schema/task
        http://www.springframework.org/schema/task/spring-task-34.1.xsd">

   <bean id="showSpeak1" class="com.oupeng.speak.Speak">
        <property name="speakPerson">
            <value>张嘎</value>
        </property>
        <property name="speakContent">
            <value>三天不打小鬼子,手都痒痒!</value>
        </property>
    </bean>

    <bean id="showSpeak2" class="com.oupeng.speak.Speak">
        <property name="speakPerson">
            <value>Rod</value>
        </property>
        <property name="speakContent">
            <value>世界上有10种人,认识二进制的和不认识二进制的。</value>
        </property>
    </bean>
  </beans>

Speak类

package com.oupeng.speak;

public class Speak {
    private String speakPerson;
    private String speakContent;//说话内容

    public void showSpeak(){
        System.out.println(this.speakPerson+"说:“"+this.speakContent+"”");
    }

    public String getSpeakPerson() {
        return speakPerson;
    }

    public void setSpeakPerson(String speakPerson) {
        this.speakPerson = speakPerson;
    }

    public String getSpeakContent() {
        return speakContent;
    }

    public void setSpeakContent(String speakContent) {
        this.speakContent = speakContent;
    }
}

TestSpeak

package com.oupeng.test;

import com.oupeng.speak.Speak;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestSpeak {

    @Test
    public void test1() {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        Speak speak1 = (Speak) context.getBean("showSpeak1");
        speak1.showSpeak();
        Speak speak2 = (Speak) context.getBean("showSpeak2");
        speak2.showSpeak();
    }

}

在这里插入图片描述
在这里插入图片描述
Print类

package com.oupeng.printer;

import com.oupeng.lnk.Lnk;
import com.oupeng.paper.Paper;

//定义打印机类
public class Printer {
    private Lnk lnk;
    private Paper paper;

//    实现打印机的打印功能
    public void printInfo(){
        System.out.println("打印机在"+this.getPaper().getSize()+"上使用"+this.getLnk().getColor()+"打印人民币。。。。。");
    }

    public Lnk getLnk() {
        return lnk;
    }

    public void setLnk(Lnk lnk) {
        this.lnk = lnk;
    }

    public Paper getPaper() {
        return paper;
    }

    public void setPaper(Paper paper) {
        this.paper = paper;
    }
}

Paper接口

package com.oupeng.paper;
//定义纸张
public interface Paper {
//    定义规格
    public String getSize();//返回纸张的规格
}

  • A4Paper类
package com.oupeng.paper.impl;

import com.oupeng.paper.Paper;

public class A4Paper implements Paper {


    @Override
    public String getSize() {
        return "A4";
    }
}

  • B5Paper类
package com.oupeng.paper.impl;

import com.oupeng.paper.Paper;

public class B5Paper implements Paper {

    @Override
    public String getSize() {
        return "B5";
    }
}

Lnk接口

package com.oupeng.lnk;

//定义墨盒
public interface Lnk {
    public String getColor();//显示墨盒的颜色
}

  • colorLnk类
package com.oupeng.lnk.impl;

import com.oupeng.lnk.Lnk;

public class ColorLnk implements Lnk {
    @Override
    public String getColor() {
        return "彩色墨盒";
    }
}

  • GrayLnk类
package com.oupeng.lnk.impl;

import com.oupeng.lnk.Lnk;

public class GrayLnk implements Lnk {
    @Override
    public String getColor() {
        return "黑白墨盒";
    }
}

在这里插入图片描述

在这里插入图片描述
用于增强的类

package com.oupeng.logger;

import org.apache.log4j.Logger;
import org.aspectj.lang.JoinPoint;

import java.util.Arrays;

//定义用于增强处理的类
public class UserServiceLogger {

    private static final Logger log = Logger.getLogger(UserServiceLogger.class);
    //前置增强
    public void beforePrintLogger(JoinPoint jp) {
        log.info("调用" + jp.getTarget() + "的" + jp.getSignature().getName() + "方法,方法参数" + Arrays.toString(jp.getArgs()));
    }

    //    定义用于后置增强处理的方法
    public void afterReturningPrintLogger(JoinPoint jp, Object result) {
        log.info("调用" + jp.getTarget() + "的" + jp.getSignature().getName() + "方法,方法返回值" + result);
    }
}

UserDao接口

package com.oupeng.dao;

import com.oupeng.pojo.User;

public interface UserDao {
    public int save(User user);
}

  • UserDaoImpl
package com.oupeng.dao.impl;

import com.oupeng.dao.UserDao;
import com.oupeng.pojo.User;

public class UserDaoImpl implements UserDao {
    @Override
    public int save(User user) {
        System.out.println("保存用户到数据库");
        return 1;
    }
}

UserService接口

package com.oupeng.dao;

import com.oupeng.pojo.User;

public interface UserDao {
    public int  save(User user);
}

  • UserServiceImpl类
package com.oupeng.service.impl;

import com.oupeng.dao.UserDao;
import com.oupeng.dao.impl.UserDaoImpl;
import com.oupeng.pojo.User;
import com.oupeng.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;

public class UserServiceImpl implements UserService {
    UserDao ud;
    @Override
    public int addNewUser(User user) {
        ud.save(user);
        return 2;
    }


    public void setUd(UserDao ud) {
        this.ud = ud;
    }

    public UserDao getUd() {
        return ud;
    }
}

applicationContext.xml

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:task="http://www.springframework.org/schema/task"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.1.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
        http://www.springframework.org/schema/task
        http://www.springframework.org/schema/task/spring-task-34.1.xsd">
	<!--    配置数据访问层-->
    <bean id="userDao" class="com.oupeng.dao.impl.UserDaoImpl"/>
    <!--   配置业务逻辑层-->
    <bean id="userService" class="com.oupeng.service.impl.UserServiceImpl">
        <!--        将 com.oupeng.dao.impl.UserDaoImpl创建的对象注入到 ud中使用(这个过程是Spring实现的)-->
        <property name="ud" ref="userDao"></property>
    </bean>

    <!--    配置用于增强处理的Bean组件-->
    <bean id="userServiceLogger" class="com.oupeng.logger.UserServiceLogger"></bean>

    <!--  开始进行AOP的配置  -->
    <aop:config>
        <!--先配置切入点-->
        <aop:pointcut id="pointCut" expression="execution(public int addNewUser(com.oupeng.pojo.User))"/>

        <!--切面-->
        <aop:aspect id="" ref="userServiceLogger">
            <!-- 前置增强-->
            <aop:before method="beforePrintLogger" pointcut-ref="pointCut"/>
            <!--  后置增强-->
            <aop:after-returning method="afterReturningPrintLogger" pointcut-ref="pointCut" returning="result"/>
        </aop:aspect>
    </aop:config>
</beans>

在这里插入图片描述

这是一个基于AI视觉识别与3D引擎技术打造的沉浸式交互圣诞装置。 简单来说,它是一棵通过网页浏览器运行的数字智慧圣诞树,你可以用真实的肢体动作来操控它的形态,并将自己的回忆照片融入其中。 1. 核心技术组成 这个作品是由三个尖端技术模块组成的: Three.js 3D引擎:负责渲染整棵圣诞树、动态落雪、五彩挂灯和树顶星。它创建了一个具备光影和深度感的虚拟3D空间。 MediaPipe AI手势识别:调用电脑摄像头,实时识别手部的21个关键点。它能读懂你的手势,如握拳、张开或捏合。 GSAP动画系统:负责处理粒子散开与聚合时的平滑过渡,让成百上千个物体在运动时保持顺滑。 2. 它的主要作用与功能 交互式情感表达: 回忆挂载:你可以上传本地照片,这些照片会像装饰品一样挂在树上,或者像星云一样环绕在树周围。 魔法操控:握拳时粒子迅速聚拢,构成一棵挺拔的圣诞树;张开手掌时,树会瞬间炸裂成星光和雪花,照片随之起舞;捏合手指时视线会拉近,让你特写观察某一张选中的照片。 节日氛围装饰: 在白色背景下,这棵树呈现出一种现代艺术感。600片雪花在3D空间里缓缓飘落,提供视觉深度。树上的彩色粒子和白色星灯会周期性地呼吸闪烁,模拟真实灯串的效果。 3. 如何使用 启动:运行代码后,允许浏览器开启摄像头。 装扮:点击上传照片按钮,选择温馨合照。 互动:对着摄像头挥动手掌可以旋转圣诞树;五指张开让照片和树化作满天星辰;攥紧拳头让它们重新变回挺拔的树。 4. 适用场景 个人纪念:作为一个独特的数字相册,在节日陪伴自己。 浪漫惊喜:录制一段操作手势让照片绽放的视频发给朋友。 技术展示:作为WebGL与AI结合的案例,展示前端开发的潜力。
【顶级EI复现】计及连锁故障传播路径的电力系统 N-k 多阶段双层优化及故障场景筛选模型(Matlab代码实现)内容概要:本文提出了一种计及连锁故障传播路径的电力系统N-k多阶段双层优化及故障场景筛选模型,并提供了基于Matlab的代码实现。该模型旨在应对复杂电力系统中可能发生的N-k故障(即多个元件相继失效),通过构建双层优化框架,上层优化系统运行策略,下层模拟故障传播过程,从而实现对关键故障场景的有效识别与筛选。研究结合多阶段动态特性,充分考虑故障的时序演化与连锁反应机制,提升了电力系统安全性评估的准确性与实用性。此外,模型具备良好的通用性与可扩展性,适用于大规模电网的风险评估与预防控制。; 适合人群:电力系统、能源互联网及相关领域的高校研究生、科研人员以及从事电网安全分析、风险评估的工程技术人员。; 使用场景及目标:①用于电力系统连锁故障建模与风险评估;②支撑N-k故障场景的自动化筛选与关键脆弱环节识别;③为电网规划、调度运行及应急预案制定提供理论依据和技术工具;④服务于高水平学术论文复现与科研项目开发。; 阅读建议:建议读者结合Matlab代码深入理解模型构建细节,重点关注双层优化结构的设计逻辑、故障传播路径的建模方法以及场景削减技术的应用,建议在实际电网数据上进行测试与验证,以提升对模型性能与适用边界的认知。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值