使用@Configuration在@Bean内部进行操作

Spring 3.0中有一个@Bean注释。 它允许直接在Java代码中定义Spring bean。 在浏览Spring引用时,我发现了两种使用此注释的方法 – 使用@Configuration注释的内部类和没有此注释的内部类。 本节包含以下代码: @Component public class FactoryMethodComponent { @Bean @Qualifier(“public”) public TestBean publicInstance() { return new TestBean(“publicInstance”); } // omitted irrelevant method } 在这里我们可以看到一段非常相似的代码,但现在@Configuration就在这里: @Configuration public class AppConfig { @Bean public MyService myService() { return new MyServiceImpl(); } } 前一部分参考文献包含以下解释: Spring组件中的@Bean方法的处理方式与Spring @Configuration类中的对应方式不同。 不同之处在于,使用CGLIB不会增强@Component类来拦截方法和字段的调用。 CGLIB代理是调用@Configuration类@Bean方法中的方法或字段创建对协作对象的bean元数据引用的方法。 使用普通的Java语义不会调用方法。 相反,在@Component类@Bean方法中调用方法或字段具有标准Java语义。 但CGLIB是应用程序开发人员不应该意识到的一种内部东西(当然,在理想的世界中)。 据我所知,在两种情况下,Spring调用使用@Bean注释的方法来创建Spring bean,在这两种情况下,这些实例都会注入协作者。 所以我的问题是,作为两个案例之间的应用程序开发人员,我有什么不同 […]

无法获得json的所有值

我试图使用rest webservice将从数据库获取的值返回到前端视图,但问题是它只返回json值的一行(第一行) 我有这样的json: {“jobName”:”NASA Scientist”,”jobPrimarySkill”:null,”jobRole”:”JOB_ROLE”,”jobDesignation”:”JOB_EXP”,”jobDescription”:”Sample 2″,”jobSalaryRange”:”JOB_POSITIONS”,”jobExp”:”JOB_SAL_RANGE”,”jobPositions”:”JOB_POSTEDBY”,”jobPostedBy”:null} {“jobName”:”NASA Scientist”,”jobPrimarySkill”:null,”jobRole”:”JOB_ROLE”,”jobDesignation”:”JOB_EXP”,”jobDescription”:”JOB_DESCRIPTION”,”jobSalaryRange”:”JOB_POSITIONS”,”jobExp”:”JOB_SAL_RANGE”,”jobPositions”:”JOB_POSTEDBY”,”jobPostedBy”:null} {“jobName”:”Web developer”,”jobPrimarySkill”:null,”jobRole”:”JOB_ROLE”,”jobDesignation”:”JOB_EXP”,”jobDescription”:”XYZ 123″,”jobSalaryRange”:”JOB_POSITIONS”,”jobExp”:”JOB_SAL_RANGE”,”jobPositions”:”JOB_POSTEDBY”,”jobPostedBy”:null} {“jobName”:”Web developer”,”jobPrimarySkill”:null,”jobRole”:”JOB_ROLE”,”jobDesignation”:”JOB_EXP”,”jobDescription”:”JOB_DESCRIPTION”,”jobSalaryRange”:”JOB_POSITIONS”,”jobExp”:”JOB_SAL_RANGE”,”jobPositions”:”JOB_POSTEDBY”,”jobPostedBy”:null} {“jobName”:”Programmer”,”jobPrimarySkill”:null,”jobRole”:”JOB_ROLE”,”jobDesignation”:”JOB_EXP”,”jobDescription”:”JOB_DESCRIPTION”,”jobSalaryRange”:”JOB_POSITIONS”,”jobExp”:”JOB_SAL_RANGE”,”jobPositions”:”JOB_POSTEDBY”,”jobPostedBy”:null} {“jobName”:”Programmer”,”jobPrimarySkill”:null,”jobRole”:”JOB_ROLE”,”jobDesignation”:”JOB_EXP”,”jobDescription”:”JOB_DESCRIPTION”,”jobSalaryRange”:”JOB_POSITIONS”,”jobExp”:”JOB_SAL_RANGE”,”jobPositions”:”JOB_POSTEDBY”,”jobPostedBy”:null} 它只将第一行json值返回到前端而不是全部。 我将从数据库中获取的值添加到List并在webservice中公开它,如下所示: public class FetchJobSummaryDAO { public List getJobSummaries() { JobSummaries jobSummaries = new JobSummaries(); List jobSummaryList = new ArrayList(); try { Connection con = DBConnection.getConnection(); String query = “select JOB_NAME,JOB_DESCRIPTION,JOB_ROLE,JOB_PRIMARY_SKILL,JOB_DESIGNATION,JOB_EXP,JOB_SAL_RANGE, JOB_POSTEDBY from TBL_JOBPOSTING”; PreparedStatement pst = con.prepareStatement(query); ResultSet rs […]

Java:如何使用JNI函数停止调用一系列C ++函数的Thread?

所以,这是我的情况: 我有一个Java应用程序,它使用来自“JavaToCpp”类的JNI方法将数据数组发送到C ++ DLL。 一旦C ++ DLL收到了所有数据,它就开始对它执行几个操作。 我正在使用新线程运行“JavaToCpp”类,因为我的Java接口在(长)(C ++)过程/子例程期间不会被冻结。 我实现了两个方法来停止工作(C ++)过程/子例程: 第一个“STOP”:正在创建一个将由C ++ DLL读取的文件,以便它可以干净地停止正在运行的过程/子例程。 第二个“KILL”:应该直接关闭/终止正在运行的C ++过程/子程序 问题是,在寻找一段时间之后,我没有找到任何好的技巧来实现它。 因此,如果有人知道如何在程序/子程序运行时杀死一个线程……

使用简单XML框架inheritance

我正在使用Simple XML Framework来解析XML文件。 从服务器我收到XML-File,如下所示: 我有一个接口(或超类) 对象和两个子类A和B. 是否可以反序列化此XML-Document? 我在教程中看到有可能用类 -attribute来区分子类 ,但不幸的是,这对我来说是不可能的。 有没有办法选择框架在type属性的基础上选择正确的子类? 我不能使用另一个框架(如JAXB)因为我使用Android ..

Java CDI:根据限定符动态选择实现?

我试图通过使用CDI使应用程序可扩展,但似乎我错过了一块拼图。 我想要的:拥有一个全局配置,定义要使用的接口的实现。 这些实现将具有@ImplDescriptor(type =“type1”)等注释。 我尝试了什么: @Produces public UEInterface createUserExit(@Any Instance instance, InjectionPoint ip) { Annotated annotated = ip.getAnnotated(); UESelect ueSelect = annotated.getAnnotation(UESelect.class); if (ueSelect != null) { System.out.println(“type = ” + ueSelect.type()); } System.out.println(“Inject is ambiguous? ” + instance.isAmbiguous()); if (instance.isUnsatisfied()) { System.out.println(“Inject is unsatified!”); return null; } // this would be ok, but causes […]

oreo中的sendOrderedBroadcast setPackage要求

除非我专门设置包名,否则为什么Android Oreo中的以下有序广播会失败? final Intent vrIntent = new Intent(RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS); // Setting the package it will work. Omitting, it will fail // vrIntent.setPackage(“com.google.android.googlequicksearchbox”); getContext().sendOrderedBroadcast(vrIntent, null, new BroadcastReceiver() { @Override public void onReceive(final Context context, final Intent intent) { // final Bundle bundle = intent.getExtras(); final Bundle bundle = getResultExtras(true); if (bundle != null) { if (bundle.containsKey(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES)) { […]

Spring MVC 4.2+ CORS返回403

我创建了一个新的简单的Spring MVC应用程序(使用4.2.1.Release,现在切换到4.2.7.Release)。 该应用很简单: WEB.XML: proxy org.springframework.web.servlet.DispatcherServlet 1 dispatchOptionsRequest true contextConfigLocation classpath*:my-cool-context.xml proxy /* 语境: 和控制器 @Controller @RequestMapping(“/”) @CrossOrigin public class MySupercoolController { @CrossOrigin @RequestMapping(path=”test”, method = RequestMethod.POST) @ResponseBody private ResponseEntity executePostProxy(HttpServletRequest request){ return new ResponseEntity(“TEST”, HttpStatus.OK); } } 现在 – 控制器本身正在工作并返回我的文本,因此控制器被加载到上下文中。 但是该端点的preflightRequest正在获得403 Forbidden响应,并且没有设置CORS响应heaeders。 我正在使用JBOSS,但我已经validation了OPTIONS请求到达Spring(正在执行FrameworkServlet doOptions方法,通过调试器检查)。 在Spring MVC中我还应该为CORS配置什么吗? BTW上下文CORS配置和Annotation配置 – 我试图让它工作,所以我尝试使用xml,注释和两者。

不支持Hive方法

我试图使用Hive作为底层数据存储运行SQl查询,该查询调用Big Decimal函数并引发以下错误: 不支持的方法 org.apache.hadoop.hive.jdbc.HivePreparedStatement.setBigDecimal(HivePreparedStatement.java:317) 这只是因为Hive不支持如下: public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException { // TODO Auto-generated method stub throw new SQLException(“Method not supported”); } 请建议可用于解决此类问题的其他解决方法或修复方法

Java中如何使用Byte Buddy分配字段?

我很难理解Byte Buddy的文档。 为了帮助我学习API,我想生成与此Java相当的字节代码: public final class GeneratedByByteBuddy { private final int a; public GeneratedByByteBuddy(final int a) { this.a = a; } } 我很难找到使用Instrumentation创建字段分配的正确方法。

在Jersey Client 2中编码花括号

我们正在使用Jersey Client 2.21。 我注意到,当我们将花括号(又名花括号)作为参数值时,它不会被正确编码。 不仅如此,花括号内的任何内容都不会被编码。 对于我测试过的常规括号或其他不安全字符,情况并非如此。 请参阅下面的示例。 在这个例子中,我输入三个参数。 一个只有空格的控制参数。 一个用花括号,一个用常规括号。 public static void testJerseyEncoding() { Client client = ClientBuilder.newClient(); String url = “http://foo.com/path”; Map map = new HashMap(); map.put(“paramWithCurly”, ” {with a space}”); map.put(“paramWithOutCurly”, “with a space”); map.put(“paramWithBracket”, “[with a space]”); WebTarget target = client.target(url); for (Map.Entry entry : map.entrySet()) { target = target.queryParam(entry.getKey(), entry.getValue()); […]