1、spring AOP配置多个 pointcut报错!
恩知道了 在expression里不支持这么写,应该用and来代替&&就搞定了。
2、怎么让Sprng SpringMVC MyBatis搭建一个 cms
。。。。。。。。。
好比问了一个怎么让Java自己写一个CMS程序呢。。。。
正确的说法:使用Java所开发的Web程序在Tomcat上运行。
也就是
Tomcat上搭建了一个
网站,网站类型是CMS,使用的技术框架是Spring
SpringMVC
Mybatis
Spring
Springmvc
Mybatis只是框架,怎么写成CMS,还要你自己去在框架上堆代码。
3、spring 引用服务 怎么配置
Spring配置人们经常会在一台以上的主机上配置一种Web应用程序。例如,在生产中,一个网站可能只有一个实例。除了此实例外,开发人员可以在用于开发的机器上配置其他的(开发)实例。也可以在公司(机构)内部的本地开发服务器上维护其他应用程序装置,这将让您受益匪浅。该实例的目的是使Web设计者可以获得有质量保证的材料,并为需要为应用程序提供文件资料的人提供准入。大家都知道,即使是最简单的场景,也需要安装、配置和维护三个实例。而对于位于不同地理位置的团队来说,要从事这样的项目便更加困难。对于任何不是特别简单的Web应用程序项目,都需要多名开发人员来安装项目装置和本地设置以及运行单元测试的装置等。很多组织都将自己开发的产品作为Web应用程序。我们可以在很多产品中发现这种情况,例如电子商务系统、内容管理系统(CMS),以及博客发布平台等。这类产品可在多个服务器中进行部署。对于成功的多用途Web应用程序来说,他们的开发人员必须要保证他们的应用程序便于安装,并且能够与其他Web应用程序完美集成。经过上述讨论之后,我们应该明了,作为本文主题的应用程序配置是通用Web应用程序项目开发人员所需要解决的重要问题之一。诸如CVS或Subversion之类的版本控制系统是开发组织使用的一种标准工具。这种工具代表了一些组织的中心源代码版本库,它们被用于保持源代码的有序。用户可以跟踪应用程序源代码的变化,显示不同版本的区别,并可以确定项目分支。而且,它们使得在应用程序部署中进行部分更新成为可能。很明显,版本控制系统软件是跟踪源代码所必需的,它对于解决应用程序配置问题有非常大的帮助。在本文中,我们将不会把重点放在版本控制系统上,因为这方面已经有很多相关的材料了。在此,我们将关注版本控制问题中的一个小话题:如何使Web应用程序的配置更加便捷(尤其是使用SpringMVC框架编写的Web应用程序)。问题是:我们在此讨论的是一种什么样的配置?任何Web应用程序都需要一些资源,这些资源通常都是其所运行的服务器所特有的,例如数据库URL、发送电子邮件的SMTP服务器,以及包含专用软件文件的文件夹等。这样的设置应该集中,从而使应用程序配置更加简单。但是,这只是这个问题最简单的一种版本。有时候,在应用程序开发中需要更加复杂的配置。这意味着,必须将各次部署中的不同Bean连接起来,而这会使问题更加复杂。这些应用程序配置问题的解决方案有诸多优势,包括:简化应用程序的安装和配置过程,使源代码版本控制更加简便,减少源代码版本库中的冲突现象。下面,我们将通过示例详细讨论这个话题。问题。我们首先来演示一下上文所提到的最简单的版本。在这一场景中,我们希望在应用程序部署中改变的是简单的配置参数,例如链接、密码等。如果您曾经使用SpringMVC框架开发过Web应用程序,那么您应该知道这里将用到的两个配置文件:/WEB-INF/applicationContext.xml,它让您可以配置Bean,或者显示应用程序上下文。通过这个文件,您可以定义自己的业务逻辑Bean、资源以及其他可以与Web端口相关联的所有Bean。/WEB-INF/[servlet-name]-servlet.xml,它被用于配置Web层、视图解析器、控制器、校验器以及其他所有MVC框架中必需的Bean。[servlet-name]指的是在web.xml部署描述符中定义的Springdispatcherservlet的名称。那么问题在哪儿呢?问题就出在applicationContext.xml中将包括一些特定于主机的Bean。本文将定义。其中,最明显的一个示例就是包含了JDBC连接信息的bean,但是任何一种稍微复杂些的应用程序都有十几个类似的Bean。看一下下面的示例:<beanclass="org.springframework.jdbc.datasource.DriverManagerDataSource"><property><value>org.postgresql.Driver</value></property><property></property><property><value>postgres</value></property><property><value></value></property></bean>这个解决方案的问题在于对applicationContext.xml文件的维护。对于初学者来说,设想一下,项目放在源代码版本控制系统中,例如CVS。下面,假设您希望在网站中添加新的功能,那么就需要在应用程序上下文定义中添加额外的Bean定义。问题是如何在生产服务器上体现这些改变。通常情况下,应用程序的本地实例不会与活动站点使用同样的数据库,因此applicationContext.xml文件将包括让您能够访问本地数据库的设置。当您想提交在源代码版本库中的改变时,就需要注意这些特定于主机属性的同步性。版本库中的文件最终可能使用本地设置中的配置。如果想在生产服务器上更新配置,就必须手动同步这些属性的值。这是非常枯燥的任务,而且还非常容易出错。对于应用程序的每个实例来说,这个问题更加重要。假如有三位开发人员正在使用代码段基址,而且他们使用的是本地的数据库。当您提交更改的时候,他们每个人在本地服务器上更新源代码的时候都必须非常谨慎。他们会手动同步这些更改,然后提交他们的工作。这样一来,版本控制系统对于这些配置文件来说已经毫无用处。如果曾经使用过SpringMVC,那么您应该知道applicationContext.xml是应用程序中的关键组件,因为是它将所有的东西粘合在一起。所以,我们需要一种机制来帮助使应用程序中各项保持有序,这点非常重要。正如前面所提到的,这是您可能遇到的较简单的配置问题。更难的问题出现在当需要在不同服务器中进行不同的Bean连接的时候。这类问题常会出现在日常软件开发任务中。例如,假如您的产品有一个客户身份验证模块,可以对来自关系数据库或LDAP服务器中的用户进行身份验证。自然,这一身份验证模块可以使用抽象了特定版本库的Bean进行配置。如果您想改变不同应用程序部署中验证用户的方式,就需要在applicationContext.xml文件中进行不同的Bean连接。这种配置问题常见于在部署中有可配置特性的所有应用程序。在下文中,我们将讨论这两种配置问题。首先我们会关注同步的Bean属性问题及其解决方案,接下来,我们会讨论更加复杂的同步Bean连接问题。解决方案同步Bean属性这个问题的一种可行的解决方案是将所有特定于主机的参数都放到普通的Java属性文件中,使用Spring的PropertyPlaceHolderConfigurer类,将这些参数写入Bean属性中。使用这一解决方案,我们可以生成如下的属性文件(/WEB-INF/jdbc.properties):jdbc.driver=org.postgresql.Driverjdbc.url=jdbc:postgresql://localhost/testjdbc.user=postgresjdbc.password=我们的Bean配置如下:<beanclass="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property><value>/WEB-INF/jdbc.properties</value></property></bean><beanclass="org.springframework.jdbc.datasource.DriverManagerDataSource"><property><value>${jdbc.driver}</value></property><property><value>${jdbc.url}</value></property><property><value>${jdbc.user}</value></property><property><value>${jdbc.password}</value></property></bean>如上所述,我们定义了一个PropertyPlaceholderConfigurer类的实例,并将其位置属性设置为我们的属性文件。该类被实现为Bean工厂的后处理器,并将使用定义在文件中的属性来代替所有的占位符(${}value)。利用这种技术,我们可以从applicationContext.xml中移除所有特定于主机的配置属性。通过这种方式,我们可以自由地为该文件添加新的Bean,而不必担心特定于主机属性的同步性。这样可以简化生产部署和维护。同步性连接上面的技术解决了第一个问题,可是如果您计划修改不同应用程序部署之间的Bean连接,这一技术便不很适合。针对这一问题的一个解决方案便是额外创建一个名为applicationContext-[hostname].xml的XML定义文件。其中[hostname]是部署应用程序的主机的名称。例如,在本地的机器上,这个文件通常名为applicationContext-localhost.xml,而在部署时,它可能更名为applicationContext-somehost.com.xml。可以猜测,这一文件必须包括特定于某一主机的所有配置Bean。在本文中,我们将假设dataSourcebean定义将位于这类文件中,而不是通用的applicationContext.xml定义。当然,这种机制与前者并非冲突,但是为了更加简单明了,我们将只关注这种方法。既然我们已经有了特定的配置,下面我们就来讨论一下如何将其整合到整个SpringMVC配置概念中。要达到这一目的,可以有许多方法,我们将详细地一一说明。但首先,我们应该注意到,由于有些Bean可能位于独立的配置文件中,因此在applicationContext.xml中,所有对它们的局部引用都必须更换成全局名称。例如,如下引用:<property><reflocal="someBean"/></property>应更改为:<property><refbean="someBean"/></property>在这之后,我们有很多可以添加额外的资源以用于配置的方式。其中最明显的就是使用<import>标签将这一额外资源包含在applicationContext.xml配置文件中。使用时,要将该标签放在applicationContext.xml文件开头。例如:<importresource="applicationContext-somehost.com.xml"/>现在,在独立的XML定义文件和普通的应用程序上下文定义文件中的所有通用Bean定义都有了特定于主机的连接。由于大多数的Bean都不是特定于主机的,因此我们可以像处理Web应用程序中的其他资源一样自由地处理applicationContext.xml文件,并可以通过合适的版本控制系统与其进行同步。但是,上述方法也有一定的弊端。如果您想保留不同XML文件的不同配置,就仍然必须担心applicationContext.xml的同步性,因为资源的名称必须根据不同服务器进行更改。虽然与原有的解决方案相比有了很大提高,只需更改文件名,但是这还是需要开发人员的手动协助。由于与applicationContext.xml相比,主机配置不需如此频繁地进行更改,因此下一步便是将主机配置移动到web.xml文件中(如果可能的话)。幸运的是,我们有一个可用的解决方案。看一下下面关于web.xml配置的片断:<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml/WEB-INF/applicationContext-somehost.com.xml</param-value></context-param>正如您所看到的,除了web.xml文件中常有的ContextLoaderListener之外,我们还添加了contextConfigLocation上下文参数配置。这一参数用于指示框架查找这些配置文件的位置。如果这一参数被省略,则Spring就只能到applicationContext.xml中查找。这里我们也定义了特定于主机的配置文件来使用。利用这种方法,我们将所有特定于主机的配置从applicationContext.xml文件中移除,这样便减轻了其在不同应用程序部署中的同步性。如果这种方法成为您的新习惯,您还可以使其更加灵活。通过遵守下列指令,也可以将特定于主机的配置从web.xml文件中移除。为此,需要创建特定于我们的应用程序上下文的类:packagenet.nighttale.spring.util;importjava.net.InetAddress;importorg.springframework.web.context.support.XmlWebApplicationContext;ext{protectedString[]getDefaultConfigLocations(){Stringhostname="localhost";try{hostname=InetAddress.getLocalHost().getHostName();}catch(Exceptione){}StringperHostConfiguration=DEFAULT_CONFIG_LOCATION_PREFIX+"applicationContext-"+hostname+DEFAULT_CONFIG_LOCATION_SUFFIXlogger.debug(":"+perHostConfiguration);if(getNamespace()!=null){returnnewString[]{DEFAULT_CONFIG_LOCATION_PREFIX+getNamespace()+DEFAULT_CONFIG_LOCATION_SUFFIX,perHostConfiguration};}else{returnnewString[]{DEFAULT_CONFIG_LOCATION,perHostConfiguration};}}}这个类拓展了Spring中常被作为默认值使用的XmlWebApplicationContext。XmlWebApplicationContext类将Web应用程序的配置从XML定义文件中复制过来。默认情况下,它可以配置来自applicationContext.xml和[servlet-name]-servlet.xml文件中的应用程序。这个类执行的惟一一项额外任务便是获取它所在的主机名称,并将applicationContext-[hostname].xml文件添加到配置文件列表中。为了使用这个类,我们需要对其进行编译,将其包含在类途径中,并指示Spring框架使用它。前两步非常简单,我们就不在此赘述。我们可以指示Sping通过contextClass上下文参数来使用它。除了web.xml文件中的原有配置,我们还可以添加下列内容:<context-param><param-name>contextClass</param-name><param-value>net.nighttale.spring.util.</param-value></context-param>如果我们使用这一配置片断,将会有三个文件被用于初始化这个框架:[servlet-name]-servlet.xml、applicationContext-[hostname].xml以及applicationContext.xml。正如您所看到的,applicationContext.xml和web.xml文件已经完全摆脱了任何特定的配置细节,而且您也不必担心会在更新应用程序时破坏配置。但是,这种方法有一个不足之处。因为,不论是否会使用,都需要在应用程序部署中有第三个配置文件。在这种情况下,便不需要特定于主机的配置。例如:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""spring-beans.dtd"><beans></beans>最后,需要知道应用程序上下文类需要查找的特定主机名。检查主机名称的最简单的方法是在机器上运行下列代码:System.out.println(InetAddress.getLocalHost().getHostName())可以将其作为Java代码执行,也可在喜欢使用的脚本语言(如BeanShell或Groovy)中作为一个具有Java风格语法的脚本执行。在获取了主机的名称之后,应该创建一个默认的/WEB-INF/applicationContext-[hostname].xml空文件夹(如我们上面所定义的),然后便可以开始了。
4、本人女产品经理,上个月被劝转岗,女性不适合做产品经理吗?
一、产品需求分析
因为工作领域关系,经常有朋友找我咨询一些软件项目的问题,比如:
开发一个教育类App多少钱?
做一个网店多少钱?
我想做一套在地图上实时显示数据并且分析的可视化平台,开发周期一般多久?
我需要一套采购物流系统,开发周期一般多久?
二、需求设计文档
平时习惯在谈项目初期,先做业务和构架需求分析,但还是时不时一个方面没考虑到,就入了坑。曾经有一个做产品经理的朋友找我合作一个项目:客户要做一个电商系统,项目第一版的要求很简单,只要能运行正常购物流程即可:
电脑和手机可以访问;
用户可以邮件注册,也能微信注册;
有产品列表展示,购物车,订单,用户扫二维码支付即可;
用户界面自己决定,以后可以换模板;
管理员后台能管理产品,批量上传订单,上传上传图片,查看客户订单。
我自己手头有一套完整的基于Spring的CMS开发框架,包括前端API模块、后端管理模块、用户权限模块、数据持久化模块等等,所以上面这些按估算很容易搞定。第3点里的产品,购物车、订单分成三个小模块,做个二维码支付也不是大问题。而且第一版只要基本功能,不用考虑任何的分布式,大流量,并发抢购等今后做大了要考虑的问题,无需过度设计。
我这个朋友也是个资深程序猿出身,所以我也很放心他作为客户传话筒,所有需求遵循KISS原则,但保留基本的模块扩展性。
三、分析细节标准
我们公司有个客服系统,客户在使用产品遇到问题时,会邮件或者电话给客服,客服录入系统后会分配给相应研发团队。这是一个常见的一问一答流程,我们的反馈会通过客服发给客户。
需求也业务拆分尽可能详细,考虑周全,最好能覆盖今后绝大部分的测试用例。
比如需要开发一个用户注册登录的功能,从某个男性产品经理嘴里说出来可能就一句话:给我开发一个用户系统,能注册,能登录,三天够不够?
从女性角度,她们习惯把一件简单的事情变的复杂化——如果这里的简单并没有你想象的那么简单呢?
如果你足够细心,就需要和客户做仔细沟通后达成共识,最终交付给研发团队的应该是如下一份需求Kickoff列表(只是举例,考虑并非100%全面):
用email注册还是用户名注册?
如果是用户名,最短几位,最长几位,允许特殊字符吗,密码最短几位,最长几位?
如果email注册,是密码一起填写注册,还是有验证步骤?
点击注册前,是否展示用户协议。不勾选显示什么错误?
如果有验证步骤,需要手机验证吗?如果要,要对接哪个API,验证码长短,过期时间?
手机验证码发送时间间隔,以及发送频率限制;
如果只需邮箱验证,发送给用户的激活链接有效期多久,过期了怎么办?
验证这个业务要不要持久化?
发送激活邮件的模板,HTML还是txt,谁来设计?
激活链接过期后,显示什么错误,然后跳转到验证邮件重发界面?
激活链接激活后,显示什么信息,自动跳转到哪个界面,比如设置密码界面?
密码设置允许特殊字符吗,最短几位,最长几位?
密码入库前采用何种加密算法,以哪个属性作为salt?
用户密码设置成功后,产品经理适合女孩子嘛跳转哪个界面,显示什么消息?
用户后期允不允许改用户名或注册邮箱吗?
用户后期修改密码是否需要邮件或手机验证?
允不允许单用户多地点登录,如果不允许,显示什么错误自动登出?
支不支持单点登录SSO?
要不要开发移动端App,需不需要提供注册和登录API?
API需不需要支持OAuth2,或是Token?
登录构架是单体还是需要考虑分布式Session?
用户权限系统设计,多Role或是单Role设计?
鉴权系统设计是无状态还是有状态?
用户自己或者管理员关于权限系统的操作流程是什么?
有没有第三方SNS接口注册接入,如果接入,需不需要同步头像,需不需要同时必须新建本地账号。
第三方SNS接入的流程,回调接口,以及界面设计;
相关前端和App界面设计图,错误对话框UI;
需求文档越详细,后期开发与测试遇到的误解就越少,试错成本也越低。
该文档必须保持在线实时更新,有任何变更,研发团队必须第一时间得知。不要通过短信或者Email更改需求,这会使团队和产品经理陷入无尽的扯皮炼狱之中。
相关推荐:
产品经理适合女孩子嘛
5、CMS是如何一步步开发出来的
要自主开发一套CMS,需要投入大量的人力物力财力。现在市面上已经有很多成熟的,开放性的CMS,一般只有有个性化开发需求的项目,才会选择自主开发,大多数的网站中,一般都是选择一套较为适合的开源程序进行二次开发使用。
CMS开发大致有如下4个步骤:
1. 创建表结构 比如创建频道表、栏目表、文章表、作者表、文章来源表等等;
2. 通过程序语言对步骤1的实体做管理(比如增删改查等操作);
3. 选择一种模板工具(如用java开发,可选用velocity),制作包括首页、频道页、栏目页、内容页的模板;
4. 将首页、频道页、栏目页、内容页静态化,保存在web服务器的相应目录即可。
综合SSH三大框架,结合javascript,Jquery,Springmvc,svn,Junit,maven,freeMarker等大量的知识点来实现一个完整的网站。
6、谁能推荐一个JAVA版本的CMS系统
一个JAVA版本的CMS系统:
师说CMS是用Java开发的内容管理系统,目前是开源中国比较活跃的开源项目之一。
师说CMS采用目前最流行的Maven项目架构,设计简单易懂,是一个轻量级的Java CMS。
Spring MVC为表现层,Spring为业务层,MyBatis为数据层。项目大量使用注解,代码注释清晰,文档齐全,是学习和二次开发的首选。
7、walrus cms支持oracle吗
基于Walrus CMS 修改,更简单,更高效,使用技术:SpringMVC,Spring Security. Hibernate jQuery及其扩展插件 ,Tiles2和FreeMark。伪静态,.html请求,基于.html页面与数据库缓存Ehcache,顶住高访问量,页面缓存可设置启用关闭。
8、怎么让Sprng SpringMVC MyBatis搭建一个 CMS
。。。。。。。。。
好比问了一个怎么让Java自己写一个CMS程序呢。。。。
正确的说法:内使用Java所开发的Web程序在Tomcat上运行容。
也就是 Tomcat上搭建了一个 网站,网站类型是CMS,使用的技术框架是Spring SpringMVC Mybatis
Spring Springmvc Mybatis只是框架,怎么写成CMS,还要你自己去在框架上堆代码。