标签: javabeans

在scala中动态创建类,我应该使用解释器吗?

我想在Scala中运行时创建一个类.现在,只考虑一个简单的例子,我想用相似的java bean来创建一些属性,我只在运行时知道这些属性.

如何创建scala类?我愿意从Scala的源文件创建,如果有编译它,并在运行时加载的方式,我可能要为我有时候有一些复杂的功能,我想添加到类.我该怎么做?

我担心我读到的scala解释器是沙盒化它加载的解释代码,以便托管解释器的一般应用程序无法使用它?如果是这种情况,那么我将无法使用动态加载的scala类.

无论如何,问题是,如何在运行时动态创建一个scala类并在我的应用程序中使用它,最好的情况是在运行时从scala源文件加载它,类似于interpreterSource("file.scala")它并加载到我当前的运行时,第二最好的情况是通过调用方法来创建. createClass(...)在运行时创建它.

谢谢,菲尔

interpreter scala runtime javabeans

12
推荐指数
1
解决办法
3614
查看次数

什么是Enterprise Java Bean?

在Tomcat FAQ上,它说:"Tomcat不是EJB服务器.Tomcat不是一个完整的J2EE服务器."

但如果我:

  • 使用Spring提供应用程序上下文
  • 用JPA注释注释我的实体(并使用Hibernate作为JPA提供者)
  • 将C3P0配置为连接池数据源
  • 用@Transactional注释我的服务方法(并使用Atomikos作为JTA提供者)
  • 使用JAXB进行编组和解组
  • 并可能添加我自己的JNDI功能

那我不是有效地拥有一个Java EE应用服务器吗?然后不是我的bean EJB?还是有其他一些定义特征?

什么是符合Java EE的应用服务器为您提供的,您不能轻易/轻松地从Tomcat获取某些第三方子系统?

java enterprise tomcat javabeans ejb-3.0

12
推荐指数
2
解决办法
5568
查看次数

如何在iReport中打印另一个列表中包含的字符串列表?

我正在使用java和iReport(来自jasper)创建一个简单的报告程序,它应该用pdf创建一个报告,显示PC的IP地址,位置,此时是否空闲(由另一个系统处理),以及它目前所附的项目清单(也在其他地方管理).

我正在使用iReport这个问题,并创建了一个虚拟集合生成类,如下所示:

public class PCReports {

    public static java.util.Collection PC_collection;
    public static java.util.Collection generateCollection() {

        PC_collection = new ArrayList<PCLineDTO>();
        PCLineDTO line = new PCLineDTO();
        line.setIP("192.168.1.1");
        line.setLab("location");
        line.setActive(true);
        line.addProjectName("project1");
        line.addProjectName("project2");
        line.addProjectName("project3");
        PC_collection.add(line);

        line = new PCLineDTO();
        line.setIp("192.168.1.2");
        line.setLab("location2");
        line.setActive(false);
        line.addProjectName("project1");
        line.addProjectName("project2");
        PC_collection.add(line);

        return PC_collection;
    }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,实体类是:

public class PCLineDTO {
    private String ip;
    private String lab;
    private Boolean active;
    private ArrayList<String> projects;
}
Run Code Online (Sandbox Code Playgroud)

在一些互联网搜索之后,我找到了一种使用子报告做类似事情的方法.

问题是,我不知道如何打印作为dataSource传递给该子报表的字符串集合.

在我在Internet上找到的示例中,对于主集合中的每个项目,子报表都传递了一组对象 - 每个属性都有自己的getter方法 - 而不是像这里的情况那样的字符串集合.在这些情况下,他们通过我无法使用的iReport语法访问他们需要使用的值,例如:

$F{project}
Run Code Online (Sandbox Code Playgroud)

由于iReport在其接收的对象中查找包含的getProject方法,但在这种情况下,它是一个简单的String对象(没有getProject方法,因为它).

jasper-reports javabeans ireport

11
推荐指数
1
解决办法
4万
查看次数

Scala属性问题

我还在学习Scala,但我认为有趣的一点是Scala模糊了方法和字段之间的界限.例如,我可以建立一个这样的类......

class MutableNumber(var value: Int)
Run Code Online (Sandbox Code Playgroud)

这里的关键是constructor-argument中的var自动允许我像java中的getter/setter一样使用'value'字段.

// use number...
val num = new MutableNumber(5)
num.value = 6
println(num.value)
Run Code Online (Sandbox Code Playgroud)

如果我想添加约束,我可以通过切换到使用方法代替实例字段来实现:

// require all mutable numbers to be >= 0
class MutableNumber(private var _value: Int) {
    require(_value >= 0)

    def value: Int = _value
    def value_=(other: Int) {
        require(other >=0)
        _value = other
    }
}
Run Code Online (Sandbox Code Playgroud)

由于API不会更改,因此客户端代码不会中断:

// use number...
val num = new MutableNumber(5)
num.value = 6
println(num.value)
Run Code Online (Sandbox Code Playgroud)

我的挂机是添加到Scala-2.8的命名参数功能.如果我使用命名参数,我的API 确实会改变,它确实打破了api.

val num = new MutableNumber(value=5)  // old API
val …
Run Code Online (Sandbox Code Playgroud)

scala properties javabeans named-parameters scala-2.8

11
推荐指数
1
解决办法
2665
查看次数

Spring会话范围的bean作为原型bean中的依赖项?

我曾多次阅读关于这个主题的春季文档,但有些事情对我来说仍然不清楚.文件说明:

如果要将(例如)HTTP请求作用域bean注入另一个bean,则必须注入AOP代理来代替作用域bean.也就是说,您需要注入一个代理对象,该对象公开与范围对象相同的公共接口,但也可以从相关范围(例如,HTTP请求)检索真实的目标对象,并将方法调用委托给真实对象.

配置示例如下:

<bean id="userPreferences" class="com.foo.UserPreferences" scope="session">
     <aop:scoped-proxy/>
</bean>

<bean id="userManager" class="com.foo.UserManager">
     <property name="userPreferences" ref="userPreferences"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

这里,userManager bean的范围是singleton.所以,我想知道这个代理事物是否适用于单例范围的bean,也就是说,如果你想将web-scoped bean注入单例bean,或者它也适用于原型bean?例如,如果userManager的范围是原型?

我问这个是因为我看到一些代码在不使用aop-proxy的情况下将会话范围的bean注入到原型中,但我不确定这是否正确...特别是那些在某些web-app中的DAO bean,scoped作为会话,它们被注入到原型范围的控制器中,用于多用户环境.这是正确的方法吗?一般来说,应该如何在Web应用程序环境中使用DAO/Service bean?

任何想法将不胜感激.

spring scope dao javabeans httpsession

11
推荐指数
1
解决办法
8463
查看次数

JasperReports:如何在报告模板中调用java bean方法?

我将java bean集合传递给jasper报告.我为这个java bean定义了几个字段,它们在我的报告中显示得很好.

我想知道是否有办法调用传递给此报告的java bean的方法???

例如,文本字段的表达式,如....

{current java bean}.methodToCall()
Run Code Online (Sandbox Code Playgroud)

java jasper-reports javabeans

11
推荐指数
1
解决办法
1万
查看次数

在一个上下文中用另一个上下文中的模拟版本替换spring bean

我正在编写一个集成测试,其中在启动期间初始化应用程序上下文xml.测试类中有几种测试方法,它们使用特定的bean"X"(已经在xml中定义).我的实际要求是仅为其中一种测试方法模拟bean X.

在测试方法中:我尝试使用ClassPathXMLApplicationContext创建一个单独的应用程序上下文,只使用模拟bean"M".

现在我有两个应用程序上下文(AC):1.在测试用例启动期间创建的一个(包含实际的bean X)和2.在测试方法中使用ClassPathXMLApplicationContext创建的一个(具有模拟bean M).

我想在AC:1中使用来自AC:2的模拟bean定义'M'替换AC:1中的实际bean定义'X'.

请问有人对此有所了解吗?

testing spring mocking javabeans context.xml

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

Spring Bean属性'xxx'不可写或具有无效的setter方法

我是一个看似简单的Spring问题的Spring新手.我工作了几个小时没有运气.这是例外,后面是代码(提前谢谢):

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'graphiteWriterSession' defined in file [/home/user/resources/jmxtrans.graphite.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'host' of bean class [com.example.ExampleClass]: Bean property 'host' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
Run Code Online (Sandbox Code Playgroud)

我的bean定义:

<bean id="graphiteWriterSession" class="com.example.ExampleClass">
    <property name="host" value="host.example.com" />
    <property name="port" value="2023" />
    <property name="namespacePrefix" value="apps.foo.bar" />
    <property name="debug" value="true" />
</bean>

<bean id="jmxtransSession" …
Run Code Online (Sandbox Code Playgroud)

java spring javabeans

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

创建自定义RestTemplate时,Spring-boot会出错

我有一个sendGetREST方法来发送一些URL endpoint并获得响应:

@Component
public class HttpURLCommand {
    private static Logger logger = Logger.getLogger(HttpURLCommand.class);

public String sendGetREST(String soapUrl, Object[] parameters) throws IOException{
        final String SOAP_URL = MessageFormat.format(soapUrl, parameters);
        RestTemplate restTemplate = new RestTemplate();
        ResponseEntity<String> response = restTemplate.getForEntity(SOAP_URL, String.class);

    logger.info("status code is: "+response.getStatusCode());
    if(response.getStatusCode().equals(HttpStatus.OK)){
        logger.info("send success");
        return response.getBody();
    }
    else {
        logger.info("send failed");
        return null;
    }

  }
}
Run Code Online (Sandbox Code Playgroud)

哪个运作良好.但是,为了使超时时间可以自定义,我HTTPConfiguration在本教程中有这个:

@Configuration
public class HTTPConfiguration {

@Bean
public RestTemplate restTemplate() {
    return new RestTemplate(clientHttpRequestFactory());
}

private …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc javabeans spring-boot

11
推荐指数
1
解决办法
1万
查看次数

无法找到“org.springframework.http.codec.ServerCodecConfigurer”类型的bean

应用程序无法启动


描述:

方法的参数0modifyRequestBodyGatewayFilterFactoryorg.springframework.cloud.gateway.config.GatewayAutoConfiguration类型需要一个bean 'org.springframework.http.codec.ServerCodecConfigurer',可能不会被发现。

行动:

考虑'org.springframework.http.codec.ServerCodecConfigurer'在您的配置中定义一个类型的 bean 。

选择了 JAVA_TOOL_OPTIONS:-agentlib:jvmhook
选择了 _JAVA_OPTIONS:-Xbootclasspath/a:"C:\Program Files (x86)\HPE\Unified Functional Testing\bin\java_shared\classes\jasmine.jar"
选择了 JAVA_TOOL_OPTIONS: -agentlib: jvmhook

java spring javabeans spring-boot spring-framework-beans

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