- 浏览: 1255295 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (399)
- 心情故事 (12)
- java (115)
- linux (55)
- 关系型数据库 (35)
- struts,jsf,spring (11)
- jdbc,hibernate,ibatis (11)
- jsp,jstl,c:tag,标签库 (2)
- ejb,webservice (1)
- tomcat,jboss,jetty,weblogic,websphere (15)
- java网络编程 (6)
- java线程 (0)
- js,jquery,json,xml,dom,html.regex (25)
- 设计模式 (6)
- BUG记录 (2)
- ant (2)
- jsp,servlet (4)
- swing (6)
- lucene+nutch (6)
- log4j (2)
- windows doc (2)
- ruby (1)
- ruby on rails (3)
- 操作系统网络 (18)
- apache 错误 (1)
- tomcat (10)
- jboss (9)
- jetty (9)
- weblogic (9)
- websphere (10)
- apache (2)
- AIX的iostat命令查看系统磁盘的使用情况 (1)
- oracle 统计一个表格有多少列 (1)
- Exception in thread "main" java.security.KeyStoreException: Windows-MY not found (1)
- jsp (1)
- jstl (1)
- c:tag (1)
- 标签库 (1)
- struts (1)
- jsf (1)
- spring (2)
- oracle,sqlplus (2)
- sqlplus (2)
- show errors (1)
- proc (1)
- function (1)
- ORA-06544: PL/SQL: internal error (1)
- arguments: [55916] (1)
- [] (7)
- 终端身份实施文档 (1)
- 重装系统之后飞鸽传书只能看到自己 (1)
- vsftp "上传 553 Could not create file" (1)
- startWebLogic.sh启动失败,提示Error initializing Embedded LDAP Server (1)
- java agent 注册为 windows 服务 (1)
- centos (1)
- svn (1)
- apr (1)
- apr-util (1)
- activemq (2)
- oracle (5)
- mysql (3)
- nosql (3)
- NSIS (1)
- windows wmic (1)
- c 指针 (1)
- c c++ (0)
- jmeter (0)
- 性能测试 (0)
- linux,备份 (2)
- C++ ,Virtual (1)
- windows dos (1)
- android (2)
- 大数据,云计算 (1)
- JVM垃圾收集 (1)
- jdbc (2)
- invoke (1)
- hibernate (1)
- ibatis (1)
- 个人开源项目源码收藏 (1)
- 批处理 (1)
- Mongodb mapreduce (8)
- kettle (1)
- Mongodb capped (1)
- mongodb gridfs (1)
- Mongodb 入门基础知识 (1)
- mongodb (8)
- hadoop2.5.1 (1)
- hadoop (4)
- eclipse (1)
- hdfs fs (1)
- elipse hadoop plugin (1)
- PHP相关知识 (1)
- js (1)
- jquery (1)
- json (1)
- xml (1)
- dom (1)
- html.regex (1)
- 网络知识 (1)
- nginx (1)
- docker (1)
- 测试 (1)
- nodejs (1)
- iptables (1)
- linux gitlab (1)
最新评论
-
July01:
最近了解到一款StratoIO打印控件,功能如下:1、Html ...
web页面调用window.print()函数实现打印的功能 -
hxdtech:
非常感谢!
我在学习ibatis时的培训ppt -
zmwxiaoming:
what 能连数据库不错
SOLR的学习整理 -
springdata_springmvc:
java程序语言学习教程 地址http://www.zuida ...
java获取当前操作系统的信息 -
huanzei:
整理的不错,
oracle lpad函数
spring内置了定时器,其实是对java.util.timer的一个自己的实现。通过它可以定时的做一些任务,比如定时的发送邮件,同样的,spring对javaMail也进行了一些封装。看配置文件。
这个是配置文件mail.property
mail.username=xxxx mail.password=xxxx mail.host=mail.mchz.com.cn mail.from=xxxx@mchz.com.cn mail.smtp.auth=true mail.debug=true resource=/xls ipaddress=172.16.4.110
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <import resource="applicationContext-propertyConfigurer.xml"/> <!-- 定时调度 --> <bean id="LoginAuditService" class="com.hzmc.capaa.business.search.impl.LoginAuditSendMailService"> <property name="from" value="${mail.from}"/> <property name="resource" value="${resource}"/> <property name="ipaddress" value="${ipaddress}"/> </bean> <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="LoginAuditService"/> <property name="targetMethod" value="sendLoginAuditMailReport"/> </bean> <bean id="jobTiger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobDetail"/> <property name="cronExpression" value="0 45 8 * * ?"/> </bean> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="jobTiger"/> </list> </property> <property name="autoStartup" value="true"/> </bean> <!-- 邮件配置 --> <bean id="sender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="${mail.host}"/> <property name="username" value="${mail.username}"/> <property name="password" value="${mail.password}"/> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">${mail.smtp.auth}</prop> <prop key="debug">${mail.debug}</prop> </props> </property> </bean> </beans>
下面是业务类,负责发邮件的业务类。代码包含用jexcelAPI生成excel文件
package com.hzmc.capaa.business.search.impl; import java.io.File; import java.io.IOException; import java.math.BigDecimal; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import jxl.Workbook; import jxl.format.UnderlineStyle; import jxl.write.WritableFont; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.Resource; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import com.hzmc.capaa.business.auditselect.AuditSelectManager; import com.hzmc.capaa.business.search.LoginAuditSearchManager; import com.hzmc.capaa.business.userconfig.UserConfigFileManager; import com.hzmc.capaa.domain.persistence.audit.AuditSelect; import com.hzmc.capaa.domain.persistence.search.LoginAuditSearch; import com.hzmc.capaa.domain.persistence.userconfig.UserConfigFile; import com.hzmc.capaa.web.util.GetCurrentDateTime; public class LoginAuditSendMailService { @Autowired private JavaMailSender sender; @Autowired private UserConfigFileManager userConfigFileManger; @Autowired private LoginAuditSearchManager loginAuditSearchManager; @Autowired private AuditSelectManager auditSelectManager; private String from; private String ipaddress; private Resource resource; public void setFrom(String from) { this.from = from; } public void sendLoginAuditMailReport() { getCapaaUserList(); } @SuppressWarnings("unchecked") public void getCapaaUserList() { List<UserConfigFile> userList = this.userConfigFileManger .getUserConfigFileList(); for (UserConfigFile user : userList) { String name = user.getCapaaUser(); String moudle = user.getAuditModule(); String tomail = user.getUserEmail(); String title = "您的关于登录审计的定制信息"; String content = "你订阅的审计信息已经收到,请点击下面的链接下载或查看!\n"; String[] moudles = moudle.split(";"); for (String model : moudles) { if (model.indexOf("a") != -1) { //标示关注登录审计模块 LoginAuditSearch loginAudit = this.loginAuditSearchManager .checkIsExists(name); if (loginAudit == null) { // 直接默认处理 getLoginAuditDataList(name,"1=1",tomail,title,content); } else { // 加上默认的审计条件 String dbUser=loginAudit.getDbUser(); BigDecimal dbId=loginAudit.getDbId(); String osUser=loginAudit.getOsUser(); String realUser=loginAudit.getRealUser(); String ipAddress=loginAudit.getIpAddress(); String appName=loginAudit.getApplication(); String timeStamp=loginAudit.getTimestamp(); String whereFilter = "1=1"; if (dbUser != null && !"".equals(dbUser)) { whereFilter += " and dbuser ='" + dbUser + "'"; } if (dbId != null && !"".equals(dbId)) { whereFilter += " and dbid='" + dbId + "'"; } if (osUser != null && !"".equals(osUser)) { whereFilter += " and osuser like '%" + osUser + "%'"; } if (realUser != null && !"".equals(realUser)) { whereFilter += " and realuser like '%" + realUser + "%'"; } if (ipAddress != null && !"".equals(ipAddress)) { whereFilter += " and IP_ADDRESS like '%" + ipAddress + "%'"; } if (appName != null && !"".equals(appName)) { whereFilter += " and APP_NAME like '%" + appName + "%'"; } if (timeStamp != null && !"".equals(timeStamp)) { whereFilter += " and TIMESTAMP >= to_date('" + timeStamp + "','yyyy-mm-dd HH24:mi')"; } getLoginAuditDataList(name,whereFilter,tomail,title,content); } } } } } @SuppressWarnings("unchecked") private void getLoginAuditDataList(String name,String whereFilter,String tomail,String title,String content) { Map map = new HashMap(); map.put("ipAddress", whereFilter); map.put("dbId", new BigDecimal(0)); map.put("countNumber", new Integer(200)); map.put("clientId", UUID.randomUUID().toString()); List<AuditSelect> list = this.auditSelectManager .getAuditSelectByPages(map); String fileName = name + GetCurrentDateTime.getCurrentTime()+".xls"; if (list != null) { try { if(!resource.getFile().getAbsoluteFile().exists()){ File f=new File(resource.getFile().getAbsolutePath()); f.mkdir(); } extExcel(list, resource.getFile().getAbsolutePath()+"\\"+fileName); } catch (IOException e) { e.printStackTrace(); } } content="http://"+ipaddress+":8082/capaa/xls/"+fileName; sendMailtoCapaaUser(tomail,title,content); } @SuppressWarnings("unchecked") public void extExcel(List<AuditSelect> loginList, String fileName) { File file = new File(fileName); jxl.write.WritableWorkbook wwb = null; jxl.write.WritableSheet ws = null; try { file.createNewFile(); wwb = Workbook.createWorkbook(file); ws = wwb.createSheet("LoginAuditSheet", 0); jxl.write.Label labela = new jxl.write.Label(0, 0, "数据库用户"); jxl.write.Label labelb = new jxl.write.Label(1, 0, "IP地址"); jxl.write.Label labelc = new jxl.write.Label(2, 0, "应用程序"); jxl.write.Label labeld = new jxl.write.Label(3, 0, "登录时间"); jxl.write.Label labele = new jxl.write.Label(4, 0, "响应行为"); jxl.write.Label labelf = new jxl.write.Label(5, 0, "审计级别"); jxl.write.Label labelg = new jxl.write.Label(6, 0, "错误性息"); ws.addCell(labela); ws.addCell(labelb); ws.addCell(labelc); ws.addCell(labeld); ws.addCell(labele); ws.addCell(labelf); ws.addCell(labelg); for(int i=1;i<loginList.size()+1;i++){ AuditSelect loginAudit=(AuditSelect)loginList.get(i-1); String dbUser = loginAudit.getDbUser(); String ipAddress = loginAudit.getIpAddress(); String appLication = loginAudit.getAppName(); String loginTime = loginAudit.getTimestamp().toString(); String reaction = loginAudit.getAuditClass(); String auditLevel = loginAudit.getAuditLevel().toString(); String errInfo = loginAudit.getErrMsg(); jxl.write.Label lable1 = new jxl.write.Label(0, i, dbUser); jxl.write.Label lable2 = new jxl.write.Label(1, i, ipAddress); jxl.write.Label lable3 = new jxl.write.Label(2, i, appLication); jxl.write.Label lable4 = new jxl.write.Label(3, i, loginTime); jxl.write.Label lable5 = new jxl.write.Label(4, i, reaction); jxl.write.Label lable6 = new jxl.write.Label(5, i, auditLevel); jxl.write.Label lable7 = new jxl.write.Label(6, i, errInfo); ws.addCell(lable1); ws.addCell(lable2); ws.addCell(lable3); ws.addCell(lable4); ws.addCell(lable5); ws.addCell(lable6); ws.addCell(lable7); } jxl.write.WritableFont wfc = new jxl.write.WritableFont( WritableFont.ARIAL, 20, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.GREEN); jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat( wfc); wcfFC.setBackground(jxl.format.Colour.RED); wwb.write(); wwb.close(); } catch (Exception ex) { ex.printStackTrace(); } } private void sendMailtoCapaaUser(String tomail, String title, String content) { SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(from); message.setTo(tomail); message.setSubject(title); message.setText(content); sender.send(message); } public void setResource(Resource resource) { this.resource = resource; } public void setIpaddress(String ipaddress) { this.ipaddress = ipaddress; } } //假如是发送html邮件,那么用MimeMessage MimeMessage msg = sender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(msg, true, "UTF-8"); helper.setFrom(from); helper.setTo(tomail); helper.setSubject(title); helper.setText(content,true); sender.send(msg); } catch (MessagingException e) { e.printStackTrace(); }
发表评论
-
一个JSF的入门例子
2009-11-09 14:00 1776public class UserBean { pr ... -
SpringORM (ibatis)的一个例子
2009-07-24 11:23 1731@Service @Transactional publi ... -
Spring DAO的一个小例子
2009-07-24 11:20 1586采用SpringDAO自身的数据库处理类。 import j ... -
jdk和cglib动态代理的demo
2009-07-09 17:12 1712JDK的动态代理是基于接口的 package ... -
Spring IOC简单实例
2009-07-09 15:30 2072把对类的实例化工作从类内部转交给Spring的IOC容器来做 ... -
spring2.5文件上传 fileUpload
2009-06-10 14:14 2464spring的文件上传 1jar包:commons-fil ... -
spring2.5学习笔记之三:spring对JDBC的支持
2009-04-17 12:59 1637在DAO类中,我们继承Spring的DAO,代码如下: j ... -
spring学习笔记之二:Spring对事务的支持
2009-04-17 12:06 12091spring对事务的管理提供了一致的编程模板,在高层 ... -
spring2.5学习笔记之一:IOC和MVC
2009-04-16 16:29 22681spring2.5的使用在配置上已经有了很大的 ... -
IOC 容器实例化的5钟方法
2008-12-10 11:13 1375方法一: Applicati=onCon ...
相关推荐
微信视频号大风口项目,多赛道选择,可矩阵,玩法简单轻松上手.mp4
电子科技大学图书馆微信小程序_中国电子科技大学
2023-04-06-项目笔记-第三百七十二阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.370局变量的作用域_370- 2025-01-08
期末课设-Python和Django实现音乐推荐系统(含源码+课设报告+答辩PPT).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载
FlexiFed实验初学者学生复制品_ FlexiFed留级生.zip
sTM32 ADC采集滤波算法,卡尔曼 中位值 同步对比输出源程序,芯片采用STM32f103c8t6.算法采用卡尔曼滤波算法中位值滤波算法, 波形输出正常采集的卡尔曼 中位值三个波形输出,程序注释详细。
详细介绍及样例数据:https://blog.csdn.net/T0620514/article/details/145019667
三相两电平逆变器模型预测控制(MPC)simulink仿真,内有坐标变和MPC代码,可修改电流参考值,~~可用作电力电子方向入门学习
25混合A星算法路径规划Hybrid-Astar 以车辆的运动学模型为节点,以当前点到终点的Astar距离和RS距离两者最大的距离作为H(n)函数的估计代价,使用matlab实现(2016a以上版本)
考虑阶梯式碳交易机制与电制氢的综合能源系统热电优化 关键词:碳交易 电制氢 阶梯式碳交易 综合能源系统 热电优化 参考文档:《考虑阶梯式碳交易机制与电制氢的综合能源系统热电优化》基本复现 仿真平台:MATLAB+CPLEX 主要内容:代码主要做的是一个考虑阶梯式碳交易机制的电热综合能源系统优化调度研究,考虑综合能源系统参与碳交易市场,引入引入阶梯式碳交易机制引导IES控制碳排放,接着细化电转气(P2G)的两阶段运行过程,引入电解槽、甲烷反应器、氢燃料电池(HFC)替传统的P2G,研究氢能的多方面效益;最后提出热电比可调的热电联产、HFC运行策略,进一步提高IES的低碳性与经济性。 目标函数为以购能成本、碳排放成本、弃风成本最小,将原问题转化为混合整数线性问题,运用CPLEX商业求解器进行求解。
并离网逆变器仿真模型 逆变器PQ控制,Vf控制,无功能量发生器SVG,有源电力滤波器APF仿真模型
springboot176基于Spring Boot的装饰工程管理系统,含有完整的源码和报告文档
一、项目简介 本项目是一套基于SSM框架实现的生活缴费系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值 二、技术实现 jdk版本:1.8 及以上 ide工具:IDEA或者eclipse 数据库: mysql5.5及以上 后端:spring+springmvc+mybatis+maven+mysql 前端:vue,css,js 三、系统功能 系统角色主要包括:管理员、用户 系统主要功能包括: 用户登录 用户注册 首页 个人中心 修改密码 个人信息 用户管理 电表管理 电表缴费管理:查看缴费详情,缴费 ETC管理 ETC缴费管理 供暖管理 供暖缴费管理 固话管理 固话缴费管理 宽带管理 宽带缴费管理 燃气表管理 燃气表缴费管理 油卡管理 油卡缴费管理 水表管理 水表缴费管理 帮助中心类型管理 油卡所属公司管理 客服管理 轮播图管理等功能
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
多智能体、一致性、时滞 含通信时滞和输入时滞的多智能体一致性仿真 简单的多智能体一致性性仿真图,包含状态轨迹图和控制输入图。 适用于初学者。
内容概要:本文介绍了一种新的智能对比度增强技术——动态直方图均衡化(DHE)。该方法通过对输入图像的直方图进行分割并分别进行直方图均衡化来克服传统全局直方图均衡化(GHE)和其他方法存在的局限性,从而实现更好的图像细节保护及显著的整体对比度增强效果。具体来说,DHE基于局部极小值将图像直方图划分为子直方图,并重新调整各分区以避免高灰度频率部分对低频区域的影响。同时,在进行均衡时限制每种子直方图的灰度级范围,防止过度拉伸导致细节丢失等问题。 适用人群:从事计算机视觉和图像处理研究的专业人员,特别是关注对比度增强算法及其实际应用的研究学者和技术开发者。 使用场景及目标:可用于医疗影像处理、指纹识别等多个领域的前期预处理步骤;主要目的是改善低对比度图像的质量,提升后续图像识别或其他处理任务的效果。 其他说明:相比于现有技术如全球均值变换、局部直方图均衡以及特定直方图规格化等方式,本提出的DHE能有效避免因增强处理而引起的严重副作用如棋盘效应等,提供更加平滑自然的视觉体验。此外文中还展示了多个实验结果以验证新方法的有效性和优越性能表现。
我的超迷你机械臂机器人项目。_Dummy-Robot
实体单元椭圆主体扭转分析,着重分析扭矩的施加方式
OKR计划表 自我管理
用于微信小程序的ProtoBuffer库