<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Bytecode on Brave New Geek</title><link>https://bravenewgeek.com/tag/bytecode/</link><description>Recent content in Bytecode on Brave New Geek</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 25 Jan 2019 10:52:38 -0600</lastBuildDate><atom:link href="https://bravenewgeek.com/tag/bytecode/index.xml" rel="self" type="application/rss+xml"/><item><title>Implementing Spring-like Classpath Scanning in Android</title><link>https://bravenewgeek.com/implementing-spring-like-classpath-scanning-in-android/</link><pubDate>Sat, 05 Jan 2013 02:53:36 -0600</pubDate><guid>https://bravenewgeek.com/implementing-spring-like-classpath-scanning-in-android/</guid><description>&lt;p&gt;One of the things that Spring 2.5 introduced back in 2007 was component scanning, a feature which removed the need for XML bean configuration and instead allowed developers to declare their beans using Java annotations. Rather than this:&lt;/p&gt;
&lt;script src="https://gist.github.com/tylertreat/7688bafe73aa1eaeaa24.js"&gt;&lt;/script&gt;
&lt;p&gt;We can do this:&lt;/p&gt;
&lt;script src="https://gist.github.com/tylertreat/937b3e36d6ecdcbc7c3b.js"&gt;&lt;/script&gt;
&lt;p&gt;It’s a pretty simple idea since Java makes it very easy to introspectively check a class’s annotations at runtime through its reflection API. Spring’s component scan feature also allows you to specify the base package(s) to scan for beans.&lt;/p&gt;</description></item><item><title>Dalvik Bytecode Generation</title><link>https://bravenewgeek.com/dalvik-bytecode-generation/</link><pubDate>Mon, 17 Dec 2012 20:03:57 -0600</pubDate><guid>https://bravenewgeek.com/dalvik-bytecode-generation/</guid><description>&lt;p&gt;&lt;a href="http://www.bravenewgeek.com/proxies-why-theyre-useful-and-how-theyre-implemented/" title="Proxies: Why They're Useful and How They're Implemented"&gt;Earlier&lt;/a&gt;, I discussed the use of dynamic proxies and how they can be implemented in Java. As we saw, a necessary part of proxying classes is bytecode generation. From its onset, something I wanted to include in Infinitum was lazy loading. I also wanted to provide support for AOP down the road. Consequently, it was essential to include some way to generate bytecode at runtime.&lt;/p&gt;</description></item><item><title>Proxies: Why They’re Useful and How They’re Implemented</title><link>https://bravenewgeek.com/proxies-why-theyre-useful-and-how-theyre-implemented/</link><pubDate>Mon, 17 Dec 2012 17:22:52 -0600</pubDate><guid>https://bravenewgeek.com/proxies-why-theyre-useful-and-how-theyre-implemented/</guid><description>&lt;p&gt;I wanted to write about lazy loading, but doing so requires some background on proxies. Proxies are such an interesting and useful concept that I decided it would be worthwhile to write a separate post discussing them. I’ve talked about them in the past, for instance on &lt;a href="http://stackoverflow.com/a/10239705/210070"&gt;StackOverflow&lt;/a&gt;, so this will be a bit of a rehash, but I will go into a little more depth here.&lt;/p&gt;
&lt;p&gt;What is a proxy? Fundamentally, it’s a broker, or mediator, between an object and that object’s user, which I will refer to as its client. Specifically, a proxy intercepts calls to the object, performs some logic, and then (typically) passes the call on to the object itself. I say &lt;em&gt;typically&lt;/em&gt; because the proxy could simply intercept without ever calling the object.&lt;/p&gt;</description></item></channel></rss>