- 博客(32)
- 资源 (1)
- 收藏
- 关注
原创 SpringBoot使用redis发布订阅方式更新配置信息
原来项目中使用枚举类定义了一些模块信息,在使用springboot后,想让这些枚举信息变成可编辑的配置信息,能随时通过页面进行编辑,然后在不停止服务的前提下更新数据,尝试了几种方案,最后觉得使用redis的发布订阅方式比较不错,下面就是记录的我的做法:添加依赖 <dependency> <groupId>org.springf...
2018-10-19 17:27:48
2652
翻译 MVC框架-mentawai(13)
数据库连接Mentawai 内部支持三种连接池: DBCP, C3P0 和 BoneCP. 推荐使用 BoneCP。 在应用管理器中创建@Overridepublic ConnectionHandler createConnectionHandler() { Props props = getProps(); String driver = props.getString("jd
2017-07-16 09:07:59
307
翻译 MVC框架-mentawai(12)
控制反转Mentawai 拥有一个与框架全面整合在一起并且功能强大的控制反转容器。因此,如果想使用控制反转和依赖注入,你不用使用任何其他的框架。 Mentawai 支持setter,构造器,小巧的auto-wiring等方式注入。下面我们来看如何容易做到这一点: 在应用管理器中创建@Overridepublic void loadFilters() { filter(new Menta
2017-07-16 07:51:34
292
翻译 MVC框架-mentawai(11)
动态消息使用Mentawai你可以轻松展示动态消息。这通常是这样的:action执行了某些任务添加了一个成功的消息;浏览器重定向到另一个action或jsp,然后成功的消息展示给用户;当用户刷新页面时,消息就会消失。例如消息可能是:“你的环境更新成功!”。NOTE: 有些框架称为flash scope action中添加消息: (flash scope)// action内任意位置 (继承 B
2017-07-15 18:13:59
292
翻译 MVC框架-mentawai(10)
校验使用Mentawai你可以在action内利用Validatable接口进行校验,也可以创建一个单独的过滤器完成这项功能。在实际使用中会更倾向于第一种方式。下面是一个例子: 在应用管理器中建立过滤器@Overridepublic void loadFilters() { filter(new ValidationFilter());} 在action中进行校验pu
2017-07-14 11:13:24
330
翻译 MVC框架-mentawai(9)
授权授权通常会在认证后进行,意味着谁可以访问什么。 Mentawai采用简单有效的方法进行用户授权。在Mentawai中,你可以告诉框架一个授权用户属于那些组,以便于稍后web应用根据这些信息判断哪些访问该接受还是拒绝。例如,你可能有些action必须需要ADMIN组才可以访问,对JSP页同样如此。 更有趣的是,一个JSP页面可能对某些用户隐藏一块或一部分。 告诉框架用户属于哪个组:publi
2017-07-08 20:21:14
236
翻译 MVC框架-mentawai(8)
认证用Mentawai,你可以为你的web网站轻易实现认证机制。Mentawai提供了通过BaseLoginAction或通过AuthenticationFilter的实现细节。 创建登录actionpublic class LoginAction extends BaseLoginAction { public String execute() throws Exception {
2017-07-07 23:41:07
256
翻译 MVC框架-mentawai(7)
环境变量对静态配置(如字符串username,password,database信息,邮件账户等),你可以使用properties文件。Mentawai将会根据对即将运行的应用自动加载对应环境的配置文件。这些环境包括:开发环境(DEV),生产环境(PROD),集成环境(INT),质量保证环境(QA)和测试环境。你可以通过设置环境变量ENV来定义环境 。如果这一变量不存在,DEV将作为默认环境。 例如
2017-07-07 00:15:05
220
翻译 MVC框架-mentawai(6)
过滤器过滤器是mentawai框架的组件。你可以在应用的某个action中进行配置,也可以对所有action进行配置。 在应用管理器中创建// 应用于指定action上的过滤器 @Override public void loadActions() { action("/Hello", HelloAction.class, "sayHi")
2017-07-06 10:02:20
237
原创 引入工程javax包编译报错
工程中引用实例项目,但好多java文件引用报错,好多javax的包明显是在jdk中的,这时需要在工程project build path中先移除JRE System Library,再添加库JRE System Library,重新编译后就一切正常了。
2017-07-06 09:26:36
2428
翻译 MVC框架-mentawai(5)
Action 结果每个Mentawai action都会返回一个字符串结果,用于应用管理器(application manager)建立一个对应的结果。例如,你可能允许一个action产生两种结果:一种是通过jsp模板产生的HTML,另一种是通过Ajax渲染的json形式的Ajax请求。action并不关心它的输出(output)是如何展示到显示层,它只是检查客户端的HTTP请求头并返回响应的结果。
2017-07-05 12:09:35
243
翻译 MVC框架-mentawai(4)
Action上下文 action 上下文行为类似于map,也有自己的特性。 应用上下文(Application context) 应用上下文是在应用范围内的map,你可以保存在整个应用中使用的信息。比如缓存一些信息。Context application = action.getApplication();Collection<User> users = (Collection<Use
2017-07-03 10:12:49
215
翻译 MVC框架-Mentawai(3)
Action的input和output 基础Action input概念action的input,提供获取boolean、double、float、int、Object值的方法,它可以执行必要的转换也可以提供默认值。它也可以从http请求(通过反射)和http头信息获取属性(远程地址、方法、授权类型等)。你也可以通过keys()方法列出所有的action输入key。默认的实现是RequestI
2017-07-01 23:26:31
227
翻译 MVC框架-Mentawai(2)
Mentawai是一个遵循传统action模式的mvc框架,以下是这一框架的架构图。 每个Action都有一个Input和一个Output,它可以通过三个map或上下文进行访问:Application,Session和Cookies。无论何时,当一个浏览器产生一个请求时,Mentawai控制器都会对应产生一个新的Action实例。这个Action实例执行过程中,会从它的input,applicat
2017-07-01 12:13:24
229
翻译 MVC框架-Mentawai(1)
Mentawai 是一个基于action的全栈全栈式开源java web框架,它诞生于2005年6月。自发布之日起,这一框架就以采用集中式的编程配置而非xml或注解为宗旨,提供高可用的web开发方案。它以高度的抽象体现KISS原则。如果对这一框架有不会操作的或有不理解的,那收到指责的应该是这个框架,而不是你。Mentawai的一个主要特征在于它的全栈式方案,对大多数的web应用而言,你不需要其他框架
2017-07-01 11:22:02
204
原创 字符串指定位置替换字符
最近对接接口时,解析文件,每行文件固定长度,属性值间以空格分隔,而有的属性如果是默认值也是空格,为了区分属性值的空格和属性值的空格,想法是通过在指定属性分隔的位置将空格替换为“#”,再用“#”分割字符串为数组。指定位置替换自定义字符代码示例。/** * 如把指定字符串"aaa bbb ccc dd"变成"aaa#bbb#ccc#dd" * 操作: * 1 int[] pots ={3,7,11
2017-04-06 19:05:40
4891
原创 hibernate 数据大小超出此类型的最大值
在使用hibernate时发现有下面日志错误在本地测试相同数据复现不出这一错误,经过反复排查发现是生产的lib里有ojdbc14.jar和oracle6.jar两个jar文件,按文件名ojdbc14文件排在oracle6前面,猜测可能是采用的ojdbc14,将本地数据库驱动替换成ojdbc14后果然能复现出日志错误。至于jar文件的区别http://blog.youkuaiyun.com/cooljun6
2016-11-17 12:27:34
1426
原创 Syntax Error, parameterized types are only if source level is 1.5处理
在使用maven过程中,如果用ArrayListString>MapString, String>等泛型是一直提示Syntax Error, parameterized types are only if source level is 1.5后来在eclipse中进行如下设置:
2016-10-25 18:27:05
415
翻译 API设计之功能小而集中
小而集中的API经常更优于旨在解决所有问题的大API。更小的API意味着更小的内存空间和更短的构建时间。小的API更容易学习。不会花大量时间学习API的系列特性,只需要查看API的特性是否在你的应用场景中是否适用。当你收到用户发给你带各种建议的email时,你更倾向于为你的API添加特性。此时,如果没有确定一个建议对你API解决的核心问题有帮助,你应该抵御住立即去实现这个建议的诱惑。大多任何API都
2016-05-25 22:52:55
347
翻译 API设计之超前设计
大量超前设计敏捷社区很早提出的理念是“变化是廉价的”,不要过度设计。你可以在之后经常地变动设计。当用来开发一个控制所有部分的应用程序时,这一理念可能是正确的。但是当你开发的API被设计成外部用户使用,使用场景可变。你的API将成为其他人程序的一部分,改变API对你可能是廉价的,但对于使用这一API的用户改变是昂贵的。公共API接口的改变是昂贵的你的API可能由公有部分和私有部分组成。公有部分是与客户
2016-05-25 10:43:27
626
原创 spring-mongo-template中对内嵌集合对象 不定参数的查询
测试数据:{ "_id" : ObjectId("54c752ed5c01557fc2eba8f1"), "title" : "测试1,27", "products" : [{ "name" : "石油", "classid" : "001", "status" : "1", "isorg" : "Y", "_class"
2015-01-27 20:29:39
5471
2
原创 mongo的upsert(spring的mongo template)
mongo的api在某些方面表现的异常优秀,这几天体会了一下mongo的upsert方法。我的目的是想在某个项号下记录每天的评论,并且能够查到某段日期间按时间倒叙排列的评论。我的设计是这样:1 类设计首先是记录每天的评论汇总@Document(collection="comments")public class Comments { @Id private String id
2014-12-03 11:08:09
20005
3
原创 CAS单点登录官方例子server端 注意事项
去官网上下载cas的server端和client端:http://www.jasig.org/cas/download
2014-07-04 10:51:39
793
原创 用maven添加依赖
Provider方:需要用maven install将jar包放到中央仓库Provider的头部信息: groupId>com.cn.test.sungroupId> artifactId>providerartifactId> packaging>jarpackaging> version>0.0.1-SNAPSH
2014-07-02 17:07:16
508
原创 There is no Action mapped fornamespace /xxx and action name xxx. - [unknown location]
今天在启动web项目时,用测试地址访问报错There is no Action mapped fornamespace /xxx and action name showIndex. - [unknown location]看配置文件和类中都没有错误后来发现tomcat中的部署和工程中不同,tomcat中部署的全部是页面相关,没有配置文件,可是tomcat中却发现struts的配置文件
2014-07-02 12:10:59
429
原创 在jsp页面上格式化输出日期格式
在做项目中用的spring-mvc,后台查到的日期形如:Thu Jan 16 00:00:00 CST 2014,想在jsp页面上显示日期为yyyy-MM-dd的样式,最后发现jstl中有专门的格式化标签,很好用,格式化数据最省力:需要操作的步骤如下: 1 在需要显示指定格式日期的jsp页面头部导入 (前提是你已经导入jstl相关的jar包) 2 需要格式化日期显示
2014-03-22 11:58:21
1587
转载 if(str_subID!=null && !"".equals(str_subID))的含义
先判断str_subID这个对象是不是存在!然后判断这个对象的值是不是空值!
2014-03-11 16:11:53
858
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人