首页 文章 精选 留言 我的

精选列表

搜索[轻量级mvc框架],共10000篇文章
优秀的个人博客,低调大师

LXQt 1.0 发布,轻量级 Qt 桌面环境

LXQt 1.0 现已发布,LXQt 是资源开支相对较低的开源桌面环境,由 LXDE 和 Razor-qt项目合并而成。LXQt 1.0 依赖于 Qt 5.15 LTS,更新内容包括有文件管理器和图像查看器的改进、桌面通知的免打扰模式、两个新的桌面主题、翻译等。 具体更新亮点如下: General LXQt 1.0.0 依赖于 Qt 5.15,这是 Qt5 的最后一个 LTS 版本。 除了错误修复和解决方法之外,LXQt 的文件管理器还添加了多项功能,例如处理标志、LXQt 文件对话框中的新选项、默认情况下使桌面项目具有粘性的选项、文件夹的递归自定义、使用鼠标滚轮平滑滚动的增强功能, 等等。 LXQt 的图像查看器已收到多项修复和新选项。 LXQt 桌面通知添加了免打扰模式。 LXQt Panel 有一个新的插件,叫做“Custom Command”。 可以在 LXQt 外观配置中保存和加载 Qt 调色板。 可以从 LXQt 电源管理器的托盘图标暂停空闲检查。 QTerminal 中引用了拖放文件的名称。 添加了两个 LXQt 主题并修复了现有主题中的问题。 翻译得到了许多更新。 以及可以在 LXQt 组件的变更日志中找到的其他更改。 LibFM-Qt / PCManFM-Qt 可以在“File Properties”对话框中添加/删除标志。 文件夹的递归定制成为可能。 添加了一个选项,用于在默认情况下使桌面项目 sticky。 挂载、卸载和弹出操作被添加到computer:///下的文件上下文菜单。 通过使用变通方法(针对 GLib、Qt 或两者中的问题),可以避免挂载加密卷时的 freeze。 GFileMonitor有关文件夹符号链接内的文件监控的错误的解决方法。 在关闭主窗口时阻止关闭文件操作对话框。 在图标视图中使用 Shift+鼠标确保正确的选择顺序。 防止在文件提示对话框中的 self-overwriting。 修复了 Cyrillic case-insensitive regex 搜索。 增强和修复平滑滚轮滚动。现在,紧凑和列表模式默认也有它(但可以为它们禁用它)。 为 LXQt 文件对话框添加了选项,用于在列表和紧凑模式下显示隐藏文件和禁用平滑滚动。此外,列表模式下 LXQt 文件对话框的隐藏列也会被记住。 LXQt Panel 添加了“Custom Command”插件。它是一个灵活的插件,可以以多种方式使用。 主菜单搜索结果的项目有上下文菜单,可以拖放。 状态通知程序中更好的图标处理。 修复了主菜单中的键盘导航。 QTerminal / QTermWidget 拖放文件的名称是带引号的。 修剪 shell 字符串。 在打开新窗口或双击标签栏时遵循预设拆分。 修复了 (Plasma) Wayland 在打开标签和拆分时的崩溃。 添加了保持下拉窗口打开的选项。 在 Wayland 下添加了错误菜单位置的解决方法。 LXQt Desktop Notifications 新增免打扰模式。 LXQt Power Management Idleness checks 可以从托盘图标暂停 30 分钟到 4 小时。 LXImage Qt 添加了用于隐藏/显示主工具栏和/或菜单栏、使用 Trash、更改缩略图尺寸以及更改缩略图停靠位置的选项。 修复了图像拟合、翻转和旋转中的错误。 修复了使用触摸板在图像上的滚轮滚动 允许直接图像重命名(使用快捷方式)。 记住 EXIF dock width。 添加了用于全屏启动的命令行选项。 添加了一个选项,用于在缩放时禁用图像平滑。 LXQt Configuration 配置中心新增“Other Settings”。 外观配置支持 Qt 调色板的保存和加载。 libQtXdg 添加了对默认终端的支持。 在查找图标时考虑 Qt 的 fallback搜索路径(对于编码人员)。 LXQt Global Keys 添加了过滤以轻松查找快捷方式。 LXQt Archiver 对于带有加密列表的档案,会显示密码提示。 更新说明:https://github.com/lxqt/lxqt/releases/tag/1.0.0

优秀的个人博客,低调大师

LXQt 0.17 发布,轻量级 Qt 桌面环境

LXQt 0.17 已发布,LXQt 是资源开支相对较低的开源桌面环境,由 LXDE 和 Razor-qt项目合并而成。 ▲使用LXQt 作为桌面环境的 LUbuntu 发行版 LXQt 0.17 是 LXQt 今年的首个更新版本,有以下值得关注的亮点: LXQt 在退出会话时现在会终止所有子进程。因此,非 LXQt 应用程序在会话结束时可保存其最后的设置,也防止部分应用程序罕见地出现退出崩溃 LXQt 文件管理器可在受支持的内核/文件系统上运行时,显示文件的创建信息 对 SVG 图标集的处理更加高效和独立 LXQt 电源管理器对 AC 和电池有单独的空闲观察器,也有在活动窗口全屏时禁用它们的选项 LXQt Panel 现在有一个类似Dock 栏的选项,可在面板与窗口重叠时自动隐藏面板 …… 详情访问https://github.com/lxqt/lxqt/releases/tag/0.17.0

优秀的个人博客,低调大师

wind-core 4.0.3 发布,轻量级 ORM

wind-core 4.0.3 已经发布,此版本更新内容: 新增:更新指定字段 新增:查询支持 新增:字符串条件构造StringCondition。如:condition.eq("id", 1); 新增:主键改为泛型 新增:条件组,拼接or条件更清晰 新增:GenericService支持操作任意表 新增:支持内存缓存。通过wind.cache.type=memory开启 新增:实体现在自带保存/更新方法 product.create(); 新增:校验器工具类 新增:全局异常处理 新增:Postgresql支持Set字段 更新:默认关闭缓存 更新:默认关闭逻辑删除 更新:默认写入所有(包括null值)属性,通过wind.write-null-prop=true/false开关 更新:InterEnum枚举值由整型改为泛型。controller枚举支持接收名称和value值 更新:@Column替换为@TableColumn 更新:弃用@Entity,使用@TableInfo 更新:其他易用性更新 优化:缓存清除时改为使用scan指令 修复:字段为boolean时,lambda无法获取到field 修复:缓存没有正确清除

优秀的个人博客,低调大师

LXQt 0.15.0 发布,轻量级 Qt 桌面环境

LXQt 0.15.0 已发布,LXQt 是资源开支相对较低的开源桌面环境,由 LXDE 和 Razor-qt项目合并而成。 0.15 是重要更新版本,有以下值得关注的亮点: 支持多屏壁纸 改进键盘导航 修复远程文件夹问题 LXQt Archiver 现在是基于 LibFM-Qt 的存档管理器 LXQt Panel 提供用于改变显示屏背光亮度的插件 支持使用 GNOME-Keyring 保存挂载密码(mount password) 为文件提供更好的 Tooltips 提示弹窗 LXQt 的 QTerminal 现在可以在 macOS 上运行,支持无边界窗口,以及其他各种终端方面的改进 LibQtXdg 现在可以让 SVG 图标在使用较大的缩放系数时保证更加清晰的效果 支持单窗口模式("Single window mode") 桌面切换工具支持选择仅显示活动桌面 详情查看https://github.com/lxqt/lxqt/releases/tag/0.15.0

优秀的个人博客,低调大师

轻量级 ioc/aop 框架 loveqq,支持 ioc 容器全量热刷新,可通过接口实现实时热更新类实现

全量刷新上下文代码示例: package com.kfyty.demo; import com.kfyty.loveqq.framework.boot.K; import com.kfyty.loveqq.framework.boot.context.ContextRefresher; import com.kfyty.loveqq.framework.core.autoconfig.annotation.Autowired; import com.kfyty.loveqq.framework.core.autoconfig.annotation.BootApplication; import com.kfyty.loveqq.framework.core.autoconfig.annotation.Component; import com.kfyty.loveqq.framework.core.autoconfig.condition.annotation.ConditionalOnProperty; import com.kfyty.loveqq.framework.core.autoconfig.env.PropertyContext; import com.kfyty.loveqq.framework.core.utils.IOC; import com.kfyty.loveqq.framework.web.core.annotation.GetMapping; import com.kfyty.loveqq.framework.web.core.annotation.RestController; import com.kfyty.loveqq.framework.web.core.autoconfig.annotation.EnableWebMvc; import lombok.extern.slf4j.Slf4j; @Slf4j @EnableWebMvc @RestController @BootApplication public class Main { public static void main(String[] args) throws Exception { K.run(Main.class, args); } @Autowired private UserService userService; @Autowired private PropertyContext propertyContext; /** * 调用接口方法 */ @GetMapping public String sayHello() { return userService.hello(); } /** * 通过可刷新的配置属性切换 UserService 实现类 * * @param impl 条件配置属性 */ @GetMapping public String switchUserImpl(String impl) { // 设置可刷新的属性,刷新上下文时不会丢失 propertyContext.setRefreshProperty("user.service.impl", impl); // 全量刷新上下文,由于类已加载,刷新过程会很快 ContextRefresher.refresh(IOC.getApplicationContext()); // 刷新是异步的,这里返回页面提示 return "ok"; } /** * 接口定义 */ public interface UserService { String hello(); } /** * 扩展实现 */ @Component @ConditionalOnProperty(value = "user.service.impl", havingValue = "extension") public static class ExtensionUserService extends DefaultUserService { @Override public String hello() { return "internal"; } } /** * 默认实现 */ @Component @ConditionalOnProperty(value = "user.service.impl", havingValue = "default", matchIfMissing = true) public static class DefaultUserService implements UserService { @Override public String hello() { return "default"; } } } 上述代码启动 main 方法后: 先访问:http://localhost:8080/sayHello,将返回 default 然后访问:http://localhost:8080/switchUserImpl?impl=internal,此时将进行ioc容器的全量刷新 然后再访问:http://localhost:8080/sayHello,将返回 internal,原因是条件注解生效,实现类变化了! 从而实现了热更新类实现,这是 @RefreshScope 注解所无法实现的效果。 并且由于是热更新,所以ioc容器的刷新很快完成(ms 级别),相比重新启动耗时更短。

优秀的个人博客,低调大师

【java学习】spring mvc 公共dao的实现,定义基本的增删改查

接口类: package com.blog.db.dao; import com.blog.util.Pagination; import java.util.List; public interface PublicDao<T> { public void setMapper(Class t); public void setTableName(String tn); public List<T> queryList(Pagination pagination); public void deleteByID(int ID); public void add(T t,Object[] values,int[] types); public T queryById(int id); public T queryByField(String fieldname,String value); public void updateByID(T t,int ID,Object[] values,int[] types); } 实现类: package com.blog.db.dao.impl; import com.blog.db.dao.PublicDao; import com.blog.util.Pagination; import org.springframework.beans.factory.annotation.Value; import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Repository; import javax.annotation.Resource; import java.sql.Types; import java.util.List; /** * 公共dao实现 * @deprecated 提供常见的列表、插入、查询单个、更新数据服务 * @author ztf * */ @Repository("publicDao") public class PublicDaoimpl<T> implements PublicDao<T> { @Resource private JdbcTemplate jdbcTemplate; private String table_name = ""; //表名称 private List<String> fields; //表字段 @Value("${db_schema}") private String schema; //表模式 private RowMapper<T> mapper; /** * 设置Mapper映射 */ public void setMapper(Class t){ this.mapper = new BeanPropertyRowMapper<T>(t); } public RowMapper<T> getMapper(){ return mapper; } public void setTableName(String tn){ this.table_name = tn; } public String getTable_name() { return schema+"."+table_name; } public List<String> getFields(){ return this.fields; } public String getFieldsToString(){ String _fields; List<String> fields = getFields(); _fields = String.join(",",fields); return _fields; } /** * 查询列表 * @param pagination 传入公共util中定义的分页对象 * @return List<T> * */ public List<T> queryList(Pagination pagination) { List lists = null; String sql = "select * from ? ?"; lists = jdbcTemplate.queryForList( sql, getTable_name(), pagination.getSql(), getMapper() ); return lists; } /** * 根据ID删除某一个行 * @param ID 传入行id * */ public void deleteByID(int ID) { String sql = "delete from "+ getTable_name()+" where ID=?"; jdbcTemplate.update( sql, new Object[] { ID }, new int[] {Types.INTEGER} ); } /** * 插入数据 * @param t 传入操作的数据对象 * @param values 值的object[]对象 * @param types 值对象的类型 * */ public void add(T t,Object[] values,int[] types) { String sql = "insert into "+getTable_name()+"("+getFieldsToString()+") values(?)"; jdbcTemplate.update( sql, values, types ); } /** * 根据ID查询指定的行 * @param id 传入id * */ public T queryById(int id) { T t = null; String sql = "select * from "+getTable_name()+" where ID=?"; try{ t = jdbcTemplate.queryForObject( sql, new Object[] {id}, new int[] {Types.INTEGER}, getMapper() ); }catch(EmptyResultDataAccessException e){ t = null; } return t; } /** * 根据指定的fieldname查询指定值的单行数据 * @param fieldname 传入id * */ public T queryByField(String fieldname,String value) { T t = null; String sql = "select * from "+getTable_name()+" where "+fieldname+"=?"; try{ t = jdbcTemplate.queryForObject( sql, new Object[] {value}, new int[] {Types.VARCHAR}, getMapper() ); }catch(EmptyResultDataAccessException e){ t = null; } return t; } /** * 根据指定的id更新指定值的单行数据 * @param t 传入更新对象 * @param ID 传入指定的ID * @param values 值的object[]对象 * @param types 值对象的类型 int[] * */ public void updateByID(T t, int ID,Object[] values,int[] types) { String sql = "update "+getTable_name()+" set username=?,password=?,pic=?,describe=?,check_time=? where ID="+ID; jdbcTemplate.update( sql, values, types ); } } 核心的地方在:如何传递Mapper 这里我使用的是 private RowMapper<T> mapper; /** * 设置Mapper映射 */ public void setMapper(Class t){ this.mapper = new BeanPropertyRowMapper<T>(t); } public RowMapper<T> getMapper(){ return mapper; } 在调用Dao时传入 T类的.class对象 调用例如(部分代码): @Qualifier("publicDao") private PublicDao<User> ud; public User Sign(String username, String password) throws UnsupportedEncodingException { String md5_pass = MD5Encryption.getEncryption(password); ud.setTableName("users"); //指定查询表名 ud.setMapper(User.class); //指定映射class对象 User user = ud.queryByField("username",username); //根据字段 username查询值为xxx 可以实现基本表的增删改查,提升开发效率, 如果有特殊的Dao可以自定义一个专属Dao 再添加特殊方法======================================================== 转载请注明出处。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册