我发现在Java中,有一个叫做的功能static block,它包括在第一次加载类时执行的代码(我不明白'加载'意味着什么,它是否意味着初始化?).是否有任何理由在静态块内而不是在构造函数中执行初始化位?我的意思是,即使构造函数做同样的事情,在第一次初始化类时也要做所有必要的事情.什么是静态块完成哪些构造函数不能?
我想使用Universal Analytics跟踪代码启用受众特征和兴趣报告.
为我的网站生成的跟踪代码如下所示:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-999999999-9', 'whatever.com');
ga('send', 'pageview');
</script>
Run Code Online (Sandbox Code Playgroud)
在展示广告客户功能下,有一个选项说:
受众特征和兴趣报告可提供年龄,性别和兴趣数据,以便您更好地了解访问者的身份.要查看此数据,您需要对跟踪代码进行少量更改.详细了解如何更改跟踪代码.
它链接到:https://support.google.com/analytics/answer/2444872?hl = en&utm_id = ad
这基本上告诉我要更换:
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www')
+ '.google-analytics.com/ga.js';
Run Code Online (Sandbox Code Playgroud)
附:
ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://')
+ 'stats.g.doubleclick.net/dc.js';
Run Code Online (Sandbox Code Playgroud)
但这似乎针对不同版本的Google Analytics(经典分析跟踪代码,我正在使用新的Universal Analytics)...
我应该更换:
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
Run Code Online (Sandbox Code Playgroud)
什么东西?(例如)
})(window,document,'script','//stats.g.doubleclick.net/analytics.js','dc');
Run Code Online (Sandbox Code Playgroud)
此外,我是否真的需要启用广告客户功能才能跟踪访问者的年龄和性别?我目前无意使用AdSense.
给定以下具有重载版本的伴随对象apply:
object List {
def apply[T](): List[T] = new Nil
def apply[T](x1: T): List[T] = new Cons(x1, new Nil)
def apply[T](x1: T, x2: T): List[T] = new Cons(x1, new Cons(x2, new Nil))
def apply[T](elems: T*): List[T] =
elems.foldRight(List[T])((elem, l) => new Cons(elem, l))
}
Run Code Online (Sandbox Code Playgroud)
和两个实例
List(1) // Error - Ambiguity
List('a', 'b') // Works fine
Run Code Online (Sandbox Code Playgroud)
scalac抱怨第一个实例化(对重载定义的模糊引用),因为单个参数和varargs方法都是同样具体的.
搜索stackoverflow我发现可以强制使用单个参数方法.List[Int](1)将使编译器使用def apply[T](x1: T).
我的问题是为什么第二个实例化def apply[T](x1: T, x2: T)没有额外的"提示" 匹配?换句话说,为什么两个参数方法比单个参数方法不是的varargs方法更 …
我长期坚持这个问题.我曾经搜索过这个问题,但没有一个解决方案有效.
结构体:
public interface GenericDAO<T extends Serializable, ID extends Serializable>
@Repository
public class AbstractGenericDAO<T extends Serializable, ID extends Serializable>
implements GenericDAO<T, ID> {
private Class<T> persistentClass;
@Autowired
private SessionFactory sessionFactory;
static Logger LOGGER = Logger.getLogger(AbstractGenericDAO.class);
@SuppressWarnings("unchecked")
public AbstractGenericDAO() {
this.persistentClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
/**
* @param entity
* @return T
* @throws DBException
*/
@SuppressWarnings("unchecked")
public T saveEntity(T entity) throws DBException {
return saveEntity(entity, false);
}
/**
* @param entity
* @param explicitFlush
* @return T
* @throws …Run Code Online (Sandbox Code Playgroud) 说我有一个系统属性MY_PROP:
java -DMY_PROP="My value"
Run Code Online (Sandbox Code Playgroud)
此属性是我的系统工作所必需的.
如果未设置此属性,则抛出的正确异常是什么?
@PostConstruct
private void init() {
myProp = System.getProperty("MY_PROP");
if (myProp == null) {
throw new ????
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
不知何故IllegalArgumentException感觉不对.也许IllegalStateException,MissingResourceException,TypeNotPresentException?这种情况的标准做法是什么?
我需要在并发环境中延迟加载资源.加载资源的代码只能执行一次.
这两个双重检查锁定(使用JRE 5+和volatile关键字)和初始化按需持有者成语似乎适合这个职业.
仅仅通过查看代码,按需初始化持有者习惯看起来更干净,更有效(但是嘿,我猜这里).不过,我必须小心并记录我的每一个单身人士的模式.至少在我看来,很难理解为什么代码会在现场写出来......
我的问题是:哪种方法更好?为什么?如果你的答案是否定的.您将如何在Java SE环境中解决此要求?
备择方案
我可以使用CDI而不强制它在整个项目中使用吗?那里有文章吗?
我已经阅读过Facebook已经为Profile Pictures交叉启用的地方.我不确定专辑和其他内容,但实际上Facebook Access-Control-Allow-Origin: *在我测试过的每个网址上都包含了标题 .
我已经尝试过标准的个人资料图片网址
https://graph.facebook.com/PROFILE_ID/picture?width=25&height=25
Run Code Online (Sandbox Code Playgroud)
以及Akamai的网址:
https://fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-ash3/...
Run Code Online (Sandbox Code Playgroud)
(后者归还https://graph.facebook.com/PROFILE_ID/photos)
我的应用程序基本上是这样做的:
var img = new Image;
img.src = "https://fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-ash3/...";
img.crossOrigin = "Anonymous";
img.onload = function() {
ctx.drawImage(img, x, y);
}
// Above code will be repeated several times
// And mixed with code that manipulates ctx
// Finally generetes data
var generatedImage = canvas.toDataURL();
// And post if back to Facebook
Run Code Online (Sandbox Code Playgroud)
我的代码似乎一切正常(在所有主流浏览器上都经过测试),但是有很多用户在将画布内容上传回Facebook时报告间歇性错误.不幸的是,我还不能让精通技术的用户报告具有正确错误描述的内容.现在我无法重现问题(甚至不知道问题是什么).
到目前为止,我所知道的是,通过编写服务器端代理来为Facebook图像提供服务,好像它们是本地的,这些错误显然已经消失了,所以,在我开始挖掘奇怪的跨浏览器问题,神秘的错误消息之前,它让我感到疑惑.作为OAuthException: An unknown error has occurred.,受污染的卡瓦斯等,我首先要回到基础:
是否为通过Graph API公开的每张图片启用了CORS?(官方文档或可靠来源的链接会很好).
任何人都可以告诉我,目前是否可以通过Jetty"粘合"部分Java EE 6 Web配置文件?我发现了很多关于将独立EJB 3容器,JTA提供程序等与旧Jetty版本集成的文章,所以如果我可以将它们全部一起工作,我就会更加努力.我想组装一个Servlet 3.0 + CDI + EJB 3.1 + JTA(如果需要,我真正想要的是声明式事务管理)+ Jetty 8上的JPA 2环境(如果没有可用的Jetty替代品,则为Tomcat 7).我的问题是:可以做到吗?有人设法做到了吗?有关将OpenEJB,Atomikos,Weld,EclipseLink和Jetty(或任何其他类似的堆栈)协同工作的任何文章?有没有神奇的"全部"pom.xml文件?
PS:是的,我知道我可以使用GlassFish(我非常喜欢).我只是想知道使用Servlet容器做类似工作有多难,以及两个环境在复杂性,性能,大小,部署速度,硬件资源消耗等方面的比较.
嗨,我正在寻找一种使用maven触摸文件的方法.用于此的特定用户案例是触及".reload"文件以强制Glassfish重新部署应用程序.
当 HEALTHCHECK 失败时,Docker 容器会发生什么,已经有一个类似的问题,但次要问题|| exit 1并不是问题的主要焦点(并且还没有直接回答)。
Dockerfile参考包含以下示例:
HEALTHCHECK
--interval=5m --timeout=3s \
CMD curl -f http://localhost/ || exit 1
Run Code Online (Sandbox Code Playgroud)
|| exit 1我在互联网上看到过其他几个健康检查说明的例子。即使原始命令仅有的两个可能的退出代码是 0 和 1。
有什么意义|| exit 1?
不会curl -f自行退出并出现错误代码 22?Docker 是否无法识别 1 以外的错误代码?