springmvc框架如何把通过socket传过来的数据保存到数据库

lfiefjw09 2017-12-20 02:34:53
通过socket数据传过来了,但是进行保存数据库时,jdbcTemplate报空指针,jdbcTemplate是用注解注入进来的
...全文
776 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wqyld9527 2017-12-25
  • 打赏
  • 举报
回复
请教一下,你这个SOCKET接收数据已经可以了吗?
什么都不能 2017-12-21
  • 打赏
  • 举报
回复
引用 10 楼 ygr_0801 的回复:
[quote=引用 9 楼 hanpoyangtitan 的回复:] 你的socket服务是什么时候实例化的,需要在springcontext完成加载后才能实例化,建议放到spring监听器里
socket是在web.xml中添加listener进行实例化的,是不是如果放到spring监听器里,通过socket这边进行增删改查时就可以用注解[/quote] 你要用Spring注解就需要让Spring接管你的实例,你就不能自己new了,能不能起线程的时候通过构造参数把service实例注入到线程中呢?这个要你自己试试看
lfiefjw09 2017-12-21
  • 打赏
  • 举报
回复
引用 11 楼 maradona1984 的回复:
把你的socket server服务的代码让spring管理就行了,然后直接注入
是把初始化socket server服务的类交给spring去管理吗 <bean id="serverListener" class="com.kw.socket.ServerListener"></bean>
maradona1984 2017-12-21
  • 打赏
  • 举报
回复
把你的socket server服务的代码让spring管理就行了,然后直接注入
lfiefjw09 2017-12-21
  • 打赏
  • 举报
回复
引用 9 楼 hanpoyangtitan 的回复:
你的socket服务是什么时候实例化的,需要在springcontext完成加载后才能实例化,建议放到spring监听器里
socket是在web.xml中添加listener进行实例化的,是不是如果放到spring监听器里,通过socket这边进行增删改查时就可以用注解
lfiefjw09 2017-12-21
  • 打赏
  • 举报
回复
弄好了,谢谢了
什么都不能 2017-12-20
  • 打赏
  • 举报
回复
你的socket服务是什么时候实例化的,需要在springcontext完成加载后才能实例化,建议放到spring监听器里
dong_19890208 2017-12-20
  • 打赏
  • 举报
回复 1
ICartService cartService =(ICartService) AppContextUtil.getBean("cartService"); 这句应该放到run方法里面,这里有个时序问题,你的线程启动的时候spring的初始化有可能还没完成,就会报空指针,你的线程最好通过下面的代码启动,控制加载顺序 @Companant public class Initor{ // 控制加载顺序 @AutoWire private CartService cartService @PostConstructor public void init(){ // 在这里启动线程 } } 另 JdbcTemplate jdbcTemp =(JdbcTemplate) AppContextUtil.getBean("jdbcTemp"); service里的这一句不需要
lfiefjw09 2017-12-20
  • 打赏
  • 举报
回复
引用 1 楼 dong_19890208 的回复:
能不能把代码贴出来?
按照你那样做了项目启动时又报错了 public class ServerSocketThread extends Thread{ ICartService cartService =(ICartService) AppContextUtil.getBean("cartService"); Socket socket = null; public ServerSocketThread(Socket s) { this.socket = s; } public void run() { try { InputStream ips = socket.getInputStream(); OutputStream ops = socket.getOutputStream(); while (true) { byte[] bt = readStream(ips); String str = new String(bt); // System.out.println("主机收到信息:" + str); String cartCode=str.substring(8, 18); boolean flag=cartService.saveOrUpdateCartIp(cartCode, socket); if(flag){ String restr="cmd1received"; ops.write(restr.getBytes()); ops.flush(); } String restr = "你好,主机已经收到信息!"; ops.write(restr.getBytes()); ops.flush(); } } catch (Exception e) { e.printStackTrace(); } } public static byte[] readStream(InputStream inStream) throws Exception { int count = 0; while (count == 0) { count = inStream.available(); } byte[] b = new byte[count]; inStream.read(b); return b; } } @Service("cartService") public class CartServiceImpl implements ICartService { @Autowired private JdbcTemplate jdbcTemplate; JdbcTemplate jdbcTemp =(JdbcTemplate) AppContextUtil.getBean("jdbcTemp"); @Override public boolean findCartbyCode(String code) { String sql="select * from t_cart where cart_code=?"; System.out.println(jdbcTemplate); List list=jdbcTemplate.queryForList(sql, code); if(null!=list&&list.size()>0){ return true; } return false; } @Override public boolean saveOrUpdateCartIp(String cartCode, Socket socket) { String sql="select * from t_cart where cart_code='"+cartCode+"'"; List list=jdbcTemplate.queryForList(sql); if(null!=list&&list.size()>0){ String cart_ip=socket.getInetAddress().getHostAddress()+socket.getLocalPort(); String sql_upd="update t_cart set ip_port='"+cart_ip+"' where cart_code='"+cartCode+"'"; int flag=jdbcTemp.update(sql_upd); if(flag>0){ return true; } } return false; } }
dong_19890208 2017-12-20
  • 打赏
  • 举报
回复
引用 5 楼 ygr_0801 的回复:
[quote=引用 3 楼 dong_19890208 的回复:] ICartService cartService=new CartServiceImpl(); 你的CartService是自己new出来的不是交给spring 管理的,这样肯定是注入不进去的; 你需要加一个AppContextUtil,然后通过下面的方式获取cartService ICartService cartService =(ICartService) AppContextUtil.getBean("cartService"); @Component public class AppContextUtil implements ApplicationContextAware { /** * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext. */ private static ApplicationContext applicationContext; // Spring应用上下文环境 /** * 实现ApplicationContextAware接口的回调方法,设置上下文环境 * * @param applicationContext * @throws BeansException */ @Autowired public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { AppContextUtil.applicationContext = applicationContext; } /** * @return ApplicationContext */ public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 获取对象 * * @param name * @return Object 一个以所给名字注册的bean的实例 * @throws BeansException */ public static Object getBean(String name) throws BeansException { return applicationContext.getBean(name); } /** * 获取类型为requiredType的对象 * 如果bean不能被类型转换,相应的异常将会被抛出(BeanNotOfRequiredTypeException) * * @param name * bean注册名 * @param requiredType * 返回对象类型 * @return Object 返回requiredType类型对象 * @throws BeansException */ public static Object getBean(String name, Class<?> requiredType) throws BeansException { return applicationContext.getBean(name, requiredType); } /** * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true * * @param name * @return boolean */ public static boolean containsBean(String name) { return applicationContext.containsBean(name); } /** * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 * 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException) * * @param name * @return boolean * @throws NoSuchBeanDefinitionException */ public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { return applicationContext.isSingleton(name); } /** * @param name * @return Class 注册对象的类型 * @throws NoSuchBeanDefinitionException */ public static Class<?> getType(String name) throws NoSuchBeanDefinitionException { return applicationContext.getType(name); } /** * 如果给定的bean名字在bean定义中有别名,则返回这些别名 * * @param name * @return * @throws NoSuchBeanDefinitionException */ public static String[] getAliases(String name) throws NoSuchBeanDefinitionException { return applicationContext.getAliases(name); } }
@Service("cartService") public class CartServiceImpl implements ICartService { @Autowired private JdbcTemplate jdbcTemplate; @Override public boolean findCartbyCode(String code) { String sql="select * from t_cart where cart_code=?"; System.out.println(jdbcTemplate); List list=jdbcTemplate.queryForList(sql, code); if(null!=list&&list.size()>0){ return true; } return false; } @Override public boolean saveOrUpdateCartIp(String cartCode, Socket socket) { String sql="select * from t_cart where cart_code='"+cartCode+"'"; List list=jdbcTemplate.queryForList(sql); if(null!=list&&list.size()>0){ String cart_ip=socket.getInetAddress().getHostAddress()+socket.getLocalPort(); String sql_upd="update t_cart set ip_port='"+cart_ip+"' where cart_code='"+cartCode+"'"; int flag=jdbcTemplate.update(sql_upd); if(flag>0){ return true; } } return false; } } 前面那个方法是controller层调用的都可以正常访问,后面这个方法是在socket那里调用的就会报JdbcTemplate空指针 [/quote]在Controller里面你的Service 是通过Spring注入的,所以可以正常注入,可是在你的socket处理这块spring是管理不到的,况且你直接new出来的service肯定是注不进去的; 通过我说的方法,就是从Spring 的容器中取出Spring 管理的service 的实例,这样取到的实例跟Controller里注入的是同一个实例 你new出来的就是另外一个实例,跟new了一个普通java对象是一样的 楼主应该对spring的注入机制了解得还不深入
lfiefjw09 2017-12-20
  • 打赏
  • 举报
回复
引用 3 楼 dong_19890208 的回复:
ICartService cartService=new CartServiceImpl(); 你的CartService是自己new出来的不是交给spring 管理的,这样肯定是注入不进去的; 你需要加一个AppContextUtil,然后通过下面的方式获取cartService ICartService cartService =(ICartService) AppContextUtil.getBean("cartService"); @Component public class AppContextUtil implements ApplicationContextAware { /** * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext. */ private static ApplicationContext applicationContext; // Spring应用上下文环境 /** * 实现ApplicationContextAware接口的回调方法,设置上下文环境 * * @param applicationContext * @throws BeansException */ @Autowired public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { AppContextUtil.applicationContext = applicationContext; } /** * @return ApplicationContext */ public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 获取对象 * * @param name * @return Object 一个以所给名字注册的bean的实例 * @throws BeansException */ public static Object getBean(String name) throws BeansException { return applicationContext.getBean(name); } /** * 获取类型为requiredType的对象 * 如果bean不能被类型转换,相应的异常将会被抛出(BeanNotOfRequiredTypeException) * * @param name * bean注册名 * @param requiredType * 返回对象类型 * @return Object 返回requiredType类型对象 * @throws BeansException */ public static Object getBean(String name, Class<?> requiredType) throws BeansException { return applicationContext.getBean(name, requiredType); } /** * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true * * @param name * @return boolean */ public static boolean containsBean(String name) { return applicationContext.containsBean(name); } /** * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 * 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException) * * @param name * @return boolean * @throws NoSuchBeanDefinitionException */ public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { return applicationContext.isSingleton(name); } /** * @param name * @return Class 注册对象的类型 * @throws NoSuchBeanDefinitionException */ public static Class<?> getType(String name) throws NoSuchBeanDefinitionException { return applicationContext.getType(name); } /** * 如果给定的bean名字在bean定义中有别名,则返回这些别名 * * @param name * @return * @throws NoSuchBeanDefinitionException */ public static String[] getAliases(String name) throws NoSuchBeanDefinitionException { return applicationContext.getAliases(name); } }
@Service("cartService") public class CartServiceImpl implements ICartService { @Autowired private JdbcTemplate jdbcTemplate; @Override public boolean findCartbyCode(String code) { String sql="select * from t_cart where cart_code=?"; System.out.println(jdbcTemplate); List list=jdbcTemplate.queryForList(sql, code); if(null!=list&&list.size()>0){ return true; } return false; } @Override public boolean saveOrUpdateCartIp(String cartCode, Socket socket) { String sql="select * from t_cart where cart_code='"+cartCode+"'"; List list=jdbcTemplate.queryForList(sql); if(null!=list&&list.size()>0){ String cart_ip=socket.getInetAddress().getHostAddress()+socket.getLocalPort(); String sql_upd="update t_cart set ip_port='"+cart_ip+"' where cart_code='"+cartCode+"'"; int flag=jdbcTemplate.update(sql_upd); if(flag>0){ return true; } } return false; } } 前面那个方法是controller层调用的都可以正常访问,后面这个方法是在socket那里调用的就会报JdbcTemplate空指针
lfiefjw09 2017-12-20
  • 打赏
  • 举报
回复
引用 3 楼 dong_19890208 的回复:
ICartService cartService=new CartServiceImpl(); 你的CartService是自己new出来的不是交给spring 管理的,这样肯定是注入不进去的; 你需要加一个AppContextUtil,然后通过下面的方式获取cartService ICartService cartService =(ICartService) AppContextUtil.getBean("cartService"); @Component public class AppContextUtil implements ApplicationContextAware { /** * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext. */ private static ApplicationContext applicationContext; // Spring应用上下文环境 /** * 实现ApplicationContextAware接口的回调方法,设置上下文环境 * * @param applicationContext * @throws BeansException */ @Autowired public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { AppContextUtil.applicationContext = applicationContext; } /** * @return ApplicationContext */ public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 获取对象 * * @param name * @return Object 一个以所给名字注册的bean的实例 * @throws BeansException */ public static Object getBean(String name) throws BeansException { return applicationContext.getBean(name); } /** * 获取类型为requiredType的对象 * 如果bean不能被类型转换,相应的异常将会被抛出(BeanNotOfRequiredTypeException) * * @param name * bean注册名 * @param requiredType * 返回对象类型 * @return Object 返回requiredType类型对象 * @throws BeansException */ public static Object getBean(String name, Class<?> requiredType) throws BeansException { return applicationContext.getBean(name, requiredType); } /** * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true * * @param name * @return boolean */ public static boolean containsBean(String name) { return applicationContext.containsBean(name); } /** * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 * 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException) * * @param name * @return boolean * @throws NoSuchBeanDefinitionException */ public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { return applicationContext.isSingleton(name); } /** * @param name * @return Class 注册对象的类型 * @throws NoSuchBeanDefinitionException */ public static Class<?> getType(String name) throws NoSuchBeanDefinitionException { return applicationContext.getType(name); } /** * 如果给定的bean名字在bean定义中有别名,则返回这些别名 * * @param name * @return * @throws NoSuchBeanDefinitionException */ public static String[] getAliases(String name) throws NoSuchBeanDefinitionException { return applicationContext.getAliases(name); } }
我这个项目也是可以用注解的,在其他地方用注解好着,在这个地方用就会和jdbcTemplate一样报空指针
dong_19890208 2017-12-20
  • 打赏
  • 举报
回复
ICartService cartService=new CartServiceImpl(); 你的CartService是自己new出来的不是交给spring 管理的,这样肯定是注入不进去的; 你需要加一个AppContextUtil,然后通过下面的方式获取cartService ICartService cartService =(ICartService) AppContextUtil.getBean("cartService"); @Component public class AppContextUtil implements ApplicationContextAware { /** * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext. */ private static ApplicationContext applicationContext; // Spring应用上下文环境 /** * 实现ApplicationContextAware接口的回调方法,设置上下文环境 * * @param applicationContext * @throws BeansException */ @Autowired public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { AppContextUtil.applicationContext = applicationContext; } /** * @return ApplicationContext */ public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 获取对象 * * @param name * @return Object 一个以所给名字注册的bean的实例 * @throws BeansException */ public static Object getBean(String name) throws BeansException { return applicationContext.getBean(name); } /** * 获取类型为requiredType的对象 * 如果bean不能被类型转换,相应的异常将会被抛出(BeanNotOfRequiredTypeException) * * @param name * bean注册名 * @param requiredType * 返回对象类型 * @return Object 返回requiredType类型对象 * @throws BeansException */ public static Object getBean(String name, Class<?> requiredType) throws BeansException { return applicationContext.getBean(name, requiredType); } /** * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true * * @param name * @return boolean */ public static boolean containsBean(String name) { return applicationContext.containsBean(name); } /** * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 * 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException) * * @param name * @return boolean * @throws NoSuchBeanDefinitionException */ public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { return applicationContext.isSingleton(name); } /** * @param name * @return Class 注册对象的类型 * @throws NoSuchBeanDefinitionException */ public static Class<?> getType(String name) throws NoSuchBeanDefinitionException { return applicationContext.getType(name); } /** * 如果给定的bean名字在bean定义中有别名,则返回这些别名 * * @param name * @return * @throws NoSuchBeanDefinitionException */ public static String[] getAliases(String name) throws NoSuchBeanDefinitionException { return applicationContext.getAliases(name); } }
lfiefjw09 2017-12-20
  • 打赏
  • 举报
回复
引用 1 楼 dong_19890208 的回复:
能不能把代码贴出来?
public class ServerSocketThread extends Thread{ Socket socket = null; public ServerSocketThread(Socket s) { this.socket = s; } public void run() { try { InputStream ips = socket.getInputStream(); OutputStream ops = socket.getOutputStream(); while (true) { byte[] bt = readStream(ips); String str = new String(bt); // System.out.println("主机收到信息:" + str); String cartCode=str.substring(8, 18); ICartService cartService=new CartServiceImpl(); boolean flag=cartService.saveOrUpdateCartIp(cartCode, socket); if(flag){ String restr="cmd1received"; ops.write(restr.getBytes()); ops.flush(); } } } catch (Exception e) { e.printStackTrace(); } } public static byte[] readStream(InputStream inStream) throws Exception { int count = 0; while (count == 0) { count = inStream.available(); } byte[] b = new byte[count]; inStream.read(b); return b; } } @Service("cartService") public class CartServiceImpl implements ICartService { @Autowired private JdbcTemplate jdbcTemplate; @Override public boolean saveOrUpdateCartIp(String cartCode, Socket socket) { String sql="select * from t_cart where cart_code='"+cartCode+"'"; List list=jdbcTemplate.queryForList(sql); if(null!=list&&list.size()>0){ String cart_ip=socket.getInetAddress().getHostAddress()+socket.getLocalPort(); String sql_upd="update t_cart set ip_port='"+cart_ip+"' where cart_code='"+cartCode+"'"; int flag=jdbcTemplate.update(sql_upd); if(flag>0){ return true; } } return false; } }
dong_19890208 2017-12-20
  • 打赏
  • 举报
回复
能不能把代码贴出来?
# demoWeb 一个基于SpringMVC的web框架 1.0.5 从web项目迁移成maven项目 1.0.6 增加菜单框架ext实现,类路径调整 1.0.7 增加http工具类,demo例子 1.0.8 socket工具类,权限组件,菜单组件,jdbc分页支持多种数据,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 zookeeper工具类优化 增加工具类 1.0.16 页面html标志修改 httpclient中文支持 工具类增强(zip,reflect,thread) 1.0.17 ftp服务端和客户端工具类,配置文件maven和web项目路径统一 1.1.0 soapui工具类(web版本) properties等工具类 1.1.1 工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开窗口和按钮时消失 1.1.10 rabbitMQ集成 视频截图 图片缩略图旋转 集成Mybatis 使用数据连接池druid dubbo使用 1.1.11 集成Spring Cache,FastJson Spring Cache增加redis缓存实现 Mybatis使用二级缓存,增加redis实现 增加reactJs 增加Mybatis插件pageHelper,Mapper 1.1.12 使用draft富文本编辑器 增加ant design 代码生成器功能增强
# demoWeb 一个基于SpringMVC的web框架 1.0.5 从web项目迁移成maven项目 1.0.6 增加菜单框架ext实现,类路径调整 1.0.7 增加http工具类,demo例子 1.0.8 socket工具类,权限组件,菜单组件,jdbc分页支持多种数据,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 zookeeper工具类优化 增加工具类 1.0.16 页面html标志修改 httpclient中文支持 工具类增强(zip,reflect,thread) 1.0.17 ftp服务端和客户端工具类,配置文件maven和web项目路径统一 1.1.0 soapui工具类(web版本) properties等工具类 1.1.1 工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开窗口和按钮时消失 1.1.10 rabbitMQ集成 视频截图 图片缩略图旋转 集成Mybatis 使用数据连接池druid dubbo使用 1.1.11 集成Spring Cache,FastJson Spring Cache增加redis缓存实现 Mybatis使用二级缓存,增加redis实现 增加reactJs 增加Mybatis插件pageHelper,Mapper 1.1.12 使用draft富文本编辑器 增加ant design 代码生成器功能增强
1.0.5 从web项目迁移成maven项目 1.0.6 增加菜单框架ext实现,类路径调整 1.0.7 增加http工具类,demo例子 1.0.8 socket工具类,权限组件,菜单组件,jdbc分页支持多种数据,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 zookeeper工具类优化 增加工具类 1.0.16 页面html标志修改 httpclient中文支持 工具类增强(zip,reflect,thread) 1.0.17 ftp服务端和客户端工具类,配置文件maven和web项目路径统一 1.1.0 soapui工具类(web版本) properties等工具类 1.1.1 工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开窗口和按钮时消失 1.1.10 rabbitMQ集成 视频截图 图片缩略图旋转 集成Mybatis 使用数据连接池druid dubbo使用
这个框架是在学习Spring的时候,为了积累学习成果,自己搭建的,一般的系统开发也可以直接使用,包括一个系统开发的基础功能。 以下是当时自己开发时的日志,大致可以说明框架里已有功能 1.0.5 从web项目迁移成maven项目 1.0.6 增加菜单框架ext实现,类路径调整 1.0.7 增加http工具类,demo例子 1.0.8 socket工具类,权限组件,菜单组件,jdbc分页支持多种数据,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 zookeeper工具类优化 增加工具类 1.0.16 页面html标志修改 httpclient中文支持 工具类增强(zip,reflect,thread) 1.0.17 ftp服务端和客户端工具类,配置文件maven和web项目路径统一 1.1.0 soapui工具类(web版本) properties等工具类 1.1.1 工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开窗口和按钮时消失 导入Eclipse中 直接执行Jetty类的main方法就可以启动服务
项目Maven构建,真实大型互联网架构,做到高并发,大数据处理,整个项目使用定制化服务思想,提供模块化、服务化、原子化的方案,将功能模块进行拆分,可以公用到所有的项目中。架构采用分布式部署架构,所有模块进行拆分,使项目做到绝对解耦,稳定压倒一切~~ 持续集成: 1. 我的待办工作流服务(提供Webservice服务) 2. 我的待办工作流集成JMS消息服务(支持高并发,可支持成千上万系统集成) 3. 我的任务提供Rest服务,完成日常的工作管理,通过定时调度平台,动态生成我的任务、循环周期任务、定时邮催提醒完成任务等 4. 文件上传、多线程下载服务化、发送邮件、短信服务化、部门信息服务化、产品信息服务化、信息发布服务化、我的订阅服务化、我的任务服务化、公共链接、我的收藏服务化等 系统模块: 1. 用户管理: 用户信息管理(添加、删除、修改、用户授权、用户栏目管理、查询等) 用户组管理(添加、删除、修改、用户组栏目授权,栏目授权、查询、用户组人员添加查询等) 用户角色管理(添加、删除、修改、用户角色授权、用户角色栏目信息查询设置等) 2. 文章管理: 栏目管理:查询无限极栏目树、创建无限极栏目树分类(导航栏目、图片列表栏目、文章列表栏目、文章内容栏目等)、删除、修改栏目信息。 文章管理:创建、删除、修改文章,多维度文章查询,包括已发布、未发布、所有文章等。文章富文本编辑器、文章多文件上传、文章状态控制等。 3. 系统设置: 数据字典管理:支持中、英文信息,支持无限级别分类配置,动态控制是否可用等。 部门信息管理:支持中、英文无限级别部门信息增加,删除,修改操作,部门列表、树心查询等。 日志管理:系统日志列表查询、在线查看、在线下载等 路线管理:集成百度地图API,提供线路查询管理功能 Druid Monitor(监控):集成阿里巴巴连接池,提供在线连接池监控程序,包括:数据源、SQL监控、URL监控、Session监控、Spring监控等 网站信息管理:通过系统配置文件进行网站内容操作,包括邮件服务器配置、公司基本信息配置等。 4. 集成REST服务,可以用作独立服务平台(提供大量实例及测试平台,包括:文件上传下载、邮件短信发送、部门、产品、公共连接、我的收藏、我的任务、信息发布等) 5. 集成Quartz调度,可以用作定时调度平台(动态配置调度类、调度时间,使程序自动执行某些业务) 6. Lucene搜索引擎,可以将文件资料索引化,支持文件内容搜索、关键字搜索、高亮关键字等,使信息在毫秒内提取查询出来 7. 用户设置功能:包括修改用户信息,修改密码、发送消息,修改个人图片,查看角色、查看用户组,管理员修改角色、用户、用户组等。 8. 集成Webservice平台,包括jaxws服务、CXF框架,配置双加密的权限认证。使服务集成更加安全。 9. Bootstrap html5提供了两套前台开环境,包括CMS和电子商务网站,使您的开发更加的简洁。 技术点: 1. Springmvc + Mybatis集成、SpringSecurity权限控制、Spring AOP事务处理。 2. Wink Rest服务、Webservice服务:jaxws、CXF等 3. IO 流上传下载文件,多线程操作 4. 发送邮件,配置邮件服务器,发基于html、纯文本格式的邮件(可以免费赠送网络爬虫,使其群发邮件,做到广告推送等) 5. MD5加密(登陆密码校验加密等),用户统一Session、Cookie管理,统一验证码校验等。 6. 数据连接池统一配置 7. Quartz定时调度任务集成(直接通过配置即可) 8. Httpclient破解验证码,登陆联通充值平台 9. 汉字、英文拆分、可以用作文档关键字搜索等。 10. Base64图片处理,支持PC,Android,IOS 11. Service Socket 、Client Socket 通信技术(已经做过GPRS数据获取,并用到了项目中) 12. 提供大量工具类,可以直接使用 13. Maven项目构建,您可以直接做架构,可以提升自己的学习能力,使您成为真正的架构师。 版本支持: 支持版本: jdk 1.6、1.7、1.8 Web容器: Tomcat 6、7、 8 数据: mysql

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧