小编Jon*_*ary的帖子

Java Builder模式

我最近写了一个构建器类,并注意到标准似乎如下

public class PersonBuilder {
    private String firstName;
    private String lastName;

    public PersonBuilder withFirstName(String firstName) {
        this.firstName = firstName;
        return this;
    }

    public PersonBuilder withLastName(String lastName) {
        this.lastName = lastName;
        return this;
    }

    public Person build() {
        return new Person(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

相反,做以下事情是否有任何不利之处

public class PersonBuilder {
    private Person person;

    public PersonBuilder withFirstName(String firstName) {
        person.setFirstName(firstName);
        return this;
    }

    public PersonBuilder withLastName(String lastName) {
        person.setLastName(lastName);
        return this;
    }

    public Person build() {
        return person;
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道这可能是一个基于意见的问题,我只是在寻找任何答案,为什么这可能是一个坏的或更好的设计模式.

java standards builder

7
推荐指数
1
解决办法
1082
查看次数

使用JSF进行Spring Boot; 找不到工厂javax.faces.context.FacesContextFactory的备份

我在使用Spring Boot和JSF时遇到了一些问题.servlet似乎正确启动,但是当我尝试访问资源时,我得到以下异常

java.lang.IllegalStateException: Could not find backup for factory javax.faces.context.FacesContextFactory. 
    at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:1011)
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:343)
    at javax.faces.webapp.FacesServlet.init(FacesServlet.java:302)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:884)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:683)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1720)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1679)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:724)
Run Code Online (Sandbox Code Playgroud)

我的Application类如下

@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(Application.class);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

    @Bean …
Run Code Online (Sandbox Code Playgroud)

jsf maven jsf-2 spring-boot

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

AttributeError:“_UnixSelectorEventLoop”对象没有属性“_signal_handlers”

我已经将 Django/Python 应用程序升级到 Python 3.9.7 和 Django 3.2.7(从 Python 3.5 和 Django 1.11.23)。

目前如果我尝试运行python manage.py createsuperuser

我收到以下错误

Traceback (most recent call last):
  File "/Users/myuser/.pyenv/versions/3.9.7/lib/python3.9/asyncio/selector_events.py", line 261, in _add_reader
    key = self._selector.get_key(fd)
  File "/Users/myuser/.pyenv/versions/3.9.7/lib/python3.9/selectors.py", line 193, in get_key
    raise KeyError("{!r} is not registered".format(fileobj)) from None
KeyError: '10 is not registered'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/myuser/Development/app/manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/myuser/.pyenv/versions/insta9/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "/Users/myuser/.pyenv/versions/insta9/lib/python3.9/site-packages/django/core/management/__init__.py", …
Run Code Online (Sandbox Code Playgroud)

python django eventlet python-3.x django-3.2

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

基于注释的Spring/JAX-RS集成,没有web.xml

我正在尝试制作一个没有web.xml的Servlet 3.0 REST服务器,即仅依赖于java类和注释.我不确定如何同时使用Spring和servlet映射注册Resource类.

我目前有:

public class ApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer
{
    @Override
    protected Class<?>[] getRootConfigClasses()
    {
        return new Class<?>[]{RootConfiguration.class};
    }

    @Override
    protected Class<?>[] getServletConfigClasses()
    {
        return new Class<?>[]{RestServletConfiguration.class};
    }

    @Override
    protected String[] getServletMappings()
    {
        return new String[] {"/*"};
    }
}


@Configuration
@ComponentScan({"com.my.spring.beans", 
               "com.my.spring.services"})
public class RootConfiguration 
{
}

@Configuration
@ComponentScan("com.my.resource.classes")
public class RestServletConfiguration
{
}
Run Code Online (Sandbox Code Playgroud)

当我启动应用程序时,spring bean正确连接,但我不知道如何正确设置JAX-RS servlet过滤器.我目前正在使用Jersey,并且在网上没有找到很多关于将Jersey与Spring集成而不使用web.xml的内容.

有谁知道如何以这种方式将Jersey与Spring集成?

java spring jax-rs jersey servlet-3.0

2
推荐指数
1
解决办法
3444
查看次数

用clojure或条件循环

我正在尝试在clojure中编写一个函数,该函数为向量中的每个值调用一个条件; 该函数应返回应用于每个值的条件结果的OR.例如,我有一个向量[1 2 3 4]和一个条件(> = x 3),其中x是向量中的一个元素,那么该函数应该返回true(类似[0 1 0 1]应该返回false).

我写了这个方法

(defn contains-value-greater-or-equal-to-three [values]
    (or (for [x values] (>= x 3)))
) 
Run Code Online (Sandbox Code Playgroud)

但是对于向量[1 2 3 4],这只是屈服(false false true true); 我想要的是应用于这些值的'或'函数.

我对函数式编程和clojure很陌生,如果我以错误的方式思考这个问题,请告诉我.

function clojure clojurescript

2
推荐指数
1
解决办法
163
查看次数

在已构造的表上设置TableModel

您可以创建表模型并将其添加到表中

TableModel tm = new TableModel();
JTable table = new JTable(tm);
Run Code Online (Sandbox Code Playgroud)

但是,如果我初始化一个表

JTable table = new JTable();
Run Code Online (Sandbox Code Playgroud)

然后在以后创建一个表模型...

TableModel tm = new TableModel();
tm.addValueAt(...);
...
Run Code Online (Sandbox Code Playgroud)

有没有办法将这个表模型添加到原始表中?

其实我已经创建了自己的类来扩展TableModelJTable了,我以为我可以简单地重建该表中给出的新表的模式,但这似乎并没有工作.

java swing constructor jtable tablemodel

0
推荐指数
1
解决办法
115
查看次数

从JavaScript更新Primefaces selectOneMenu

我有一个JSF表单,其中包含一些JavaScript.当特定输入更改为值> = 10时,selectOneMenu需要动态更改其选项(是或否).

我的jQuery:

if ($("input[id*='inputBox']").val() >= 10) {
    $("select[id*='selectOneMenu']").val("No");
    } else {
    $("select[id*='selectOneMenu']").val("Yes");
}
Run Code Online (Sandbox Code Playgroud)

当我调试时,selectOneMenu中的值被正确更改,但UI组件不会更改其选项.如何告诉selectOneMenu更新其渲染值?

jsf render selectonemenu primefaces

0
推荐指数
1
解决办法
1731
查看次数