我有一个基本的Spring JDBC应用程序,它具有非常基本的配置:
<bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@1.1.1.1:1521:XXX"/>
<property name="username" value="username"/>
<property name="password" value="password"/>
</bean>
<bean id="dbThing" class="com.DbThing">
<property name="dataSource" ref="myDataSource"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
我想介绍一个连接池,并在阅读了几个线程后,我对使用哪个池库感到有点困惑.
似乎在SO上有更多学分的图书馆是CP30和DBCP.由于我使用的是Oracle,我还可以使用驱动程序提供的池数据源.我知道有更多的库可用 - 例如新的Apache Tomcat 7池库.
有没有我应该避免的图书馆?
我应该在给定的库中使用任何推荐的配置吗?
你想分享的任何"战争故事"?
我使用ExecutorService和Future(这里是示例代码)在一个带有超时的单独线程中运行一个进程(线程"生成"发生在AOP方面).
现在,主线程是Resteasy请求.Resteasy使用一个或多个ThreadLocal变量来存储我需要在Rest方法调用中的某个时刻检索的一些上下文信息.问题是,由于Resteasy线程在新线程中运行,因此ThreadLocal变量将丢失.
将Resteasy使用的任何ThreadLocal变量"传播"到新线程的最佳方法是什么?似乎Resteasy使用多个ThreadLocal变量来跟踪上下文信息,我想"盲目地"将所有信息传递给新线程.
我查看了子类化ThreadPoolExecutor并使用beforeExecute方法将当前线程传递给池,但我找不到将ThreadLocal变量传递给池的方法.
有什么建议吗?
谢谢
我正在尝试angular.js,我对我应该导入的javascript文件的数量感到困惑.在1.0.1版本中有许多其他文件,例如:
当然,我打开这些文件试图了解它们的功能.例如,angular-loader有一条评论说:
Interface for configuring angular {@link angular.module modules}.
Run Code Online (Sandbox Code Playgroud)
对我来说,它听起来像一个重要的模块,但我的简单的应用程序没有它工作正常...
要我全部导入吗?
我已经反编译了一个使用新的Java 7字符串切换功能的非常简单的类.
班级:
public class StringSwitch {
public static void main(String[] args) {
final String color = "red";
switch (color) {
case "red":
System.out.println("IS RED!");
break;
case "black":
System.out.println("IS BLACK");
break;
case "blue":
System.out.println("IS BLUE");
break;
case "green":
System.out.println("IS GREEN");
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
针对此类运行Java 7"javap",会生成一组有趣的指令(完整的反汇编代码可在此处获得):
public static void main(java.lang.String[]);
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
...
12: lookupswitch { // 4
112785: 56
3027034: 84
93818879: 70
98619139: 98
default: 109
}
56: aload_2
57: ldc …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Windows上运行的Jetty 6.1.26实例上启用远程JMX.我尝试了几种方法,但结果总是一样的:
当我尝试从jconsole连接到service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi我得到"连接被拒绝".
我在互联网上找到了几个指南,但似乎没有人帮忙.请注意我从"Jetty-Service.exe"包装器中独立运行Jetty.
如果有人能提出一种在码头上启用远程JMX的方法,那就太好了.
我有一个bash脚本,我使用"执行shell"从Jenkins作业执行.该脚本启动EC2实例并设置host包含新实例的主机名的变量.
我想将新实例的主机名(脚本变量host:)设置为Jenkins环境变量,以便我可以将其传递给下游作业(可能使用Build Flow插件).
知道怎么做吗?
谢谢
我正在使用Spring 3.x,Java 6.
我有一个带有以下连接点的@Around方面:
@Around("execution(public * my.service.*.*Connector.*(..))")
Run Code Online (Sandbox Code Playgroud)
因此,我基本上对拦截所有对类的公共方法的调用感兴趣,类名以"Connector"结尾.到现在为止还挺好.
现在,在我的方面,我想访问方法的实际参数名称:
public doStuff(String myarg, Long anotherArg)
Run Code Online (Sandbox Code Playgroud)
myarg和另一个Arg
我明白使用:
CodeSignature signature = (CodeSignature)jointPoint.getSignature();
return signature.getParameterNames();
Run Code Online (Sandbox Code Playgroud)
将实际工作,但只有我用" -g "标志(完全调试)编译代码,我宁愿不这样做.
有没有其他方法可以访问这种运行时信息.
谢谢L
我有一个Web应用程序配置为以标准方式使用Spring Security 3.2.
我正在使用@PreAuthorize注释来保护Controllers方法.现在,我想拒绝访问每个控制器方法,除非它被注释@PreAuthorize.
我尝试了以下方法:
超级控制器
每个控制器都从一个带有注释的超级控制器扩展:@PreAutorize("denyAll").这种方法似乎不起作用,因为忽略了控制器的方法注释.一切都是被禁止的.
@PreAutorize("denyAll")
public class SuperController {
}
public class MyController extends SuperController {
@PreAuthorize("hasRole('SUPERHERO')")
@RequestMapping(value = URL_PREFIX + "Add.do", method = RequestMethod.GET)
public String doStuff(Model model) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
AOP
在全局方法安全标记中使用切入点表达式
<global-method-security pre-post-annotations="enabled">
<protect-pointcut expression="execution(* com.acme.*Controller.*(..))" access="denyAll" />
</global-method-security>
Run Code Online (Sandbox Code Playgroud)
这种方法也失败了:仍然可以访问未注释的控制器方法.
我正在使用Groovy,我正在尝试将xml节点插入到使用XmlSlurper解析的xml文档中.我设法在文档的末尾添加节点,但不是我真正需要的地方.
原始文件:
<xml-fragment xmlns:ser="http://www.bea.com/wli/sb/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:con="http://www.bea.com/wli/sb/pipeline/config">
<ser:coreEntry isProxy="true" isEnabled="true" isTracingEnabled="false">
<ser:binding type="SOAP" isSoap12="false" xsi:type="con:SoapBindingType" xmlns:con="http://www.bea.com/wli/sb/services/bindings/config">
<con:wsdl ref="bus/src/main/osb/interfaces/apilink/ChargeServices"/>
<con:port>
<con:name>ChargeServicesPort</con:name>
<con:namespace>java:dk.tdc.apilink.logic.sessions.interfaces</con:namespace>
</con:port>
<con:selector type="SOAP body"/>
</ser:binding>
</ser:coreEntry>
</xml-fragment>
Run Code Online (Sandbox Code Playgroud)
要添加的片段
def fragmentToAddXml = '''
<ser:security xmlns:ser="http://www.bea.com/wli/sb/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:con="http://www.bea.com/wli/sb/pipeline/config">hello</ser:security>
'''
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的代码.
def root = new XmlSlurper().parseText(file.getText())
root.'core-entry'.appendNode( fragmentToAddXml )
def xmlBuilder = new groovy.xml.StreamingMarkupBuilder().bind{ mkp.yield root }
Run Code Online (Sandbox Code Playgroud)
请注意,新的节点应该放在之前的"SER:结合"节点.
结果应该是:
<xml-fragment xmlns:ser="http://www.bea.com/wli/sb/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:con="http://www.bea.com/wli/sb/pipeline/config">
<ser:coreEntry isProxy="true" isEnabled="true" isTracingEnabled="false">
<ser:security xmlns:ser="http://www.bea.com/wli/sb/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:con="http://www.bea.com/wli/sb/pipeline/config">hello</ser:security>
<ser:binding type="SOAP" isSoap12="false" xsi:type="con:SoapBindingType" xmlns:con="http://www.bea.com/wli/sb/services/bindings/config">
<con:wsdl ref="bus/src/main/osb/interfaces/apilink/ChargeServices"/>
<con:port>
<con:name>ChargeServicesPort</con:name>
<con:namespace>java:dk.tdc.apilink.logic.sessions.interfaces</con:namespace> …Run Code Online (Sandbox Code Playgroud) 我有一个使用spring-boot-starter. dependecy:tree当我在 Maven 中运行目标时,我发现这spring-boot-starter-logging取决于logback和 (间接)log4j。为什么spring-boot-starter-logging需要依赖log4-to-slf4j?
java ×6
spring ×3
angularjs ×1
c3p0 ×1
decompiling ×1
groovy ×1
java-7 ×1
javascript ×1
jenkins ×1
jetty ×1
jmx ×1
log4j ×1
logging ×1
resteasy ×1
shell ×1
spring-aop ×1
spring-boot ×1
thread-local ×1
threadpool ×1
xml ×1