小编ash*_*ram的帖子

是否有必要在Web开发中编写单元测试?

我从事网络开发已有4年多了.我曾参与过几个不同的项目,但我们从未在单个项目中编写单元测试.

由于所有紧张的时间表和死线,编写测试变得非常困难.所以我的问题是: -

  1. 在进行Web开发时是否真的有必要编写单元测试?
  2. 如果是,那么在编码和测试时如何管理他的时间?
  3. 编写或不编写单元测试如何影响Web项目的整体质量?
  4. 它对项目的总体时间表有多大影响?

PS: - 我们在java,struts,spring和hibernate中进行web开发.JUnit广泛用于java中的测试.另外,Spring和Struts有一些内置的JUnit支持.

对此有任何意见将不胜感激.

谢谢.

testing unit-testing

6
推荐指数
1
解决办法
487
查看次数

Hibernate验证器的国际化

Hibernate验证器是否支持国际化.我看到了jar,我可以看到各种ValidationMessages.properties文件.

我们可以创建自己的自定义错误消息,这些消息将被国际化吗?我不想在Hibernate验证器中使用默认提供的错误消息.

我们需要使用自己的自定义消息,它们应该国际化.

以及Hibernate验证器支持的语言是什么.在jar中我看到了英语,法语,德语,土耳其语和蒙古语的属性文件.

我们可以添加更多语言,例如西班牙语,葡萄牙语等吗

java internationalization hibernate-validator

6
推荐指数
1
解决办法
5586
查看次数

如何在Spring中使用速度1.7

我使用速度1.7与spring 3.1框架发送电子邮件.velocity用于电子邮件模板.

以下是配置

<bean id="velocityEngine"
    class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
    <property name="velocityProperties">
        <props>
            <prop key="resource.loader">class</prop>
            <prop key="class.resource.loader.class">
                org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
            </prop>
        </props>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

以下是我的代码

 @Component
 public class EmailUtils {

    @Autowired
    private static VelocityEngine velocityEngine;

    public static void sendMail(String subject, Map data, String template,
            String toName, String toAddress) {


        HtmlEmail email = new HtmlEmail();

        try {
            email.setHostName(hostName);
            email.setSmtpPort(smtpPort);
            email.setSubject(subject);

            System.out.println(template +" template");
            System.out.println(data +" data ");
            System.out.println(velocityEngine +" velocityEngine ");

            String message = VelocityEngineUtils.mergeTemplateIntoString(
                    velocityEngine, template, data);

            System.out.println(message +" message message ");

            email.setMsg(message);
            email.addTo(toAddress, toName);
            email.setFrom(fromAddress, …
Run Code Online (Sandbox Code Playgroud)

spring velocity

6
推荐指数
2
解决办法
2万
查看次数

使用itext将jpg图像写入pdf时读取JPG异常时的过早EOF

我试图将jpg图像插入PDF.一些jpg图像正常工作但在某些情况下我得到以下异常.

java.io.IOException: Premature EOF while reading JPG.
    at com.itextpdf.text.Jpeg.processParameters(Jpeg.java:218)
    at com.itextpdf.text.Jpeg.<init>(Jpeg.java:117)
    at com.itextpdf.text.Image.getInstance(Image.java:279)
    at com.itextpdf.text.Image.getInstance(Image.java:241)
    at com.itextpdf.text.Image.getInstance(Image.java:364)
Run Code Online (Sandbox Code Playgroud)

以下是我正在使用的代码.

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class ImagesNextToEachOther {

    public static final String DEST = "/home/Documents/pdftest/hello.pdf";

    public static final String IMG1 = "/home/Documents/pdftest/2.jpg";

    public static void main(String[] args) throws IOException,
            DocumentException {
        File file = new File(DEST);
        file.getParentFile().mkdirs();
        new ImagesNextToEachOther().createPdf(DEST);
    }

    public void createPdf(String dest) throws IOException, DocumentException { …
Run Code Online (Sandbox Code Playgroud)

java jpeg itext

6
推荐指数
1
解决办法
699
查看次数

查找员工用户有权访问的最快方法是什么?

我有一张员工表,其中包含一般员工信息.另一个包含用户信息的User表.用户可以创建员工.

当用户创建员工时,用户将部门,产品,子产品和区域分配给员工.

用户他们可以访问特定的部门,产品,子产品和区域.

例如,用户A可以访问D1部门,产品P1(地区=亚洲,美国),P2(地区=亚洲),P3(地区=亚洲,美国).

Division是Product的父级.每个部门都可以有很多产品.

当我说用户A可以访问产品P1(地区=亚洲,美国)时,这意味着用户A可以添加产品= P1和地区=亚洲或美国的员工.

他不能将员工添加到产品P1或任何其他产品本身的任何其他区域.

如果假设用户A在db中添加了500名员工,则另一个用户B已添加500名其他员工,依此类推.

如何编写有效的查询以获取我可以访问的员工?

请注意,可能会发生另一个具有相同访问权限的用户可以添加员工,我也应该能够看到这些员工.

下面是我的db模式.

        --------------------------------------------------------
    --  DDL for Table BI_DIVISION
    --------------------------------------------------------

      CREATE TABLE "HEADCOUNT_BI"."BI_DIVISION" 
       (    "DIVISION_ID" NUMBER(*,0) NOT NULL 
        "DIVISION_NAME" VARCHAR2(4000) 
       ) ;

    --------------------------------------------------------
    --  DDL for Table BI_PRODUCT
    --------------------------------------------------------

      CREATE TABLE "HEADCOUNT_BI"."BI_PRODUCT" 
       (    "PRODUCT_ID" NUMBER(*,0) NOT NULL , 
        "PRODUCT_NAME" VARCHAR2(4000), 
        "DIVISION_ID" NUMBER(*,0) 
       ) ;


    --------------------------------------------------------
    --  DDL for Table BI_SUB_PRODUCT
    --------------------------------------------------------

      CREATE TABLE "HEADCOUNT_BI"."BI_SUB_PRODUCT" 
       (    "SUB_PRODUCT_ID" NUMBER(*,0) NOT NULL, 
        "SUB_PRODUCT_NAME" VARCHAR2(4000), 
        "PRODUCT_ID" NUMBER(*,0), 
       ) ;


    --------------------------------------------------------
    --  DDL for Table BI_REGION …
Run Code Online (Sandbox Code Playgroud)

sql oracle

5
推荐指数
1
解决办法
301
查看次数

部署在tomcat上的Web应用程序首次访问速度很慢?

我们在Tomcat 7上部署了一个Spring MVC Web应用程序.每次部署新构建时,它都是第一次运行速度非常慢.即使是登录页面也需要时间.

这是什么原因以及可以采取哪些措施来加快速度?

java tomcat web-applications

5
推荐指数
1
解决办法
4689
查看次数

如何使用jquery在弹出窗口中进行页面转换?

我们有一个使用jquery的Web应用程序.我们必须添加一个将在弹出窗口中打开的新模块.然后,该模块中的所有页面将使用ajax在同一弹出窗口中打开.

我们将有添加/编辑/列表/搜索页面等页面.我们希望在同一个弹出窗口中加载这些页面.

这是否可以在弹出窗口中进行页面转换.我们正在使用spring MVC.

编辑1

就像你点击菜单中的链接一样,它会打开一个弹出窗口.弹出窗口将有更多的按钮,这些按钮将进入新的屏幕,但在相同的弹出窗口中.我用ajax来更新一小部分屏幕.我过去常常使用div和span.但是我们如何用包含许多html组件的全新页面替换整个弹出页面.

就我使用ajax而言,当你进行远程调用时,服务器端方法将一些数据对象作为响应返回给json,可以在客户端使用它来更新页面的某些区域.

我们可以从服务器端返回整个页面吗?

请帮忙.

jquery spring-mvc popup

5
推荐指数
1
解决办法
3047
查看次数

如何在maven应用程序中热部署JSP更改?

我有一个maven web应用程序.我正在使用springource工具套件及其内置的tc结构服务器.

每次我做任何更改我都要做mvn clean install并重启服务器.即使是JSP的变化.

有没有什么方法可以让我进行JSP更改,它们会在浏览器中反映出来像普通的Web应用程序(不是maven应用程序).

我已经通过互联网搜索但尚未成功.

仍然没有任何线索.它使开发过程非常缓慢.我查看了jrebel,但它不是免费的,我不是在寻找热门的类部署,而只是JSP的热门部署,javascripts,css等.

hotdeploy maven tcserver

5
推荐指数
2
解决办法
6755
查看次数

是否可以将Flyway,Liquibase等数据库迁移工具与应用程序代码库集成?

我的意思是允许应用程序修改数据库是一个好习惯吗?或者应该在应用程序代码库外部进行数据库迁移?

新的,所以任何输入将不胜感激.

我们使用java和gradle来构建应用程序.

java database-migration liquibase gradle flyway

5
推荐指数
1
解决办法
1573
查看次数

在Spring Security中尝试访问登录页面时访问被拒绝异常

我正在使用基于Java的Spring Security。我已经创建了自定义访问决策投票人impl。

但是,当我运行该应用程序时,无法打开登录页面,因为它显示访问被拒绝。

在我添加了自定义访问决策投票人impl之后,就发生了这种情况。我猜问题是由于自定义AccessDecisionVoter中的以下代码。

if(authentication instanceof AnonymousAuthenticationToken)
            return ACCESS_DENIED;
Run Code Online (Sandbox Code Playgroud)

但是我需要这样做,以便不检查未登录用户的权限。

它进入无限循环,登录页面,访问决策投票者,访问被拒绝,登录页面等等。

下面是spring安全配置代码。

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private UserDetailsService userDetailsService;

    @Autowired
    private AffirmativeBased accessDecisionManager;

    @Bean
    @Autowired
    public AffirmativeBased accessDecisionManager(AccessDecisionVoterImpl accessDecisionVoter) {
        List<AccessDecisionVoter<?>> accessDecisionVoters = new ArrayList<AccessDecisionVoter<?>>();
        accessDecisionVoters.add(accessDecisionVoter);
        AffirmativeBased accessDecisionManager = new AffirmativeBased(accessDecisionVoters);
        return accessDecisionManager;
    }

    @Override
    @Autowired
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
    }

    @Bean
    public PasswordEncoder passwordEncoder(){
        PasswordEncoder passwordEncoder = new PasswordEncoder();
        passwordEncoder.setStringDigester(stringDigester());
        return passwordEncoder;
    }

    @Bean …
Run Code Online (Sandbox Code Playgroud)

java spring spring-security access-denied spring-java-config

5
推荐指数
1
解决办法
2087
查看次数