Spring Gets Expanded Java Annotation Support

When writing a complex Java program filled with many interlocking objects, any automation of routine tasks can be a big help. So Java developers using the Java Spring framework should welcome recent additional support for annotations, which could take care of many mundane construction and configuration duties. Spring is an open source collection of components for developing Java Enterprise Edition-based applications.

Codified in Java Specification Request 250 and added to version 5 of Java, annotations "allow you to add metadata to Java source code," explained Rod Johnson, chief executive officer of SpringSource, which sells a commercial version of Spring, as well as corrals the open source Spring development. Johnson gave a presentation on the latest version of Spring, version 2.5, at the JavaOne Conference, held earlier this year in San Francisco.

Annotations are not merely human-readable metadata. They are a set of extensible keywords, each prefixed by the @ symbol, that class constructors and other Java tools can interpret and process. Annotations have actually been around since Spring version 1.2, Johnson said. You could annotate a method or type so that it could be exported to Java Management Extensions (JMX), a Java-based tool for managing distributed Java applications.

The latest Spring really embraces annotations, however. "In Spring 2.5, we've extended annotation support to provide comprehensive support for dependency injection," Johnson said. Dependency injection, the heart of Spring, allows a program to call an external service without knowing the particulars of where that service is located. The nice thing about these annotations, named @autowired and @resource, is that they can eliminate external configurations of applications. Also, they can be used to change the configuration of a program without changing the source code, Johnson said.

Another new set of annotations supported in 2.5, called meta-annotations, can help developers build a semantic model of the application. Some of these annotations have been standardized, and you can also annotate your own types through @component. These annotations identify and document the role of types, such as service object or repository. This allows Spring to scan a program, and find every class and consider it as a candidate for reuse. With Spring, "changes are picked up automatically. So in development, if you pick up a new class, annotate with @component, it instantly becomes a Spring [component] without the need to author any configuration," Johnson said. Using Eclipse Spring IDE plug-in, you can also generate a map of your application using these annotations.

For more information, go to the Spring 2.5 reference guide.

About the Author

Joab Jackson is the chief technology editor of Government Computing News. You can contact Joab at [email protected].

Featured

  • stylized illustration of people conversing on headsets

    AI and Our Next Conversations in Higher Education

    Ryan Lufkin, the vice president of global strategy for Instructure, examines how the focus on AI in education will move from experimentation to accountability.

  • AI word on microchip and colorful light spread

    Microsoft Unveils Maia 200 Inference Chip to Cut AI Serving Costs

    Microsoft recently introduced Maia 200, a custom-built accelerator aimed at lowering the cost of running artificial intelligence workloads at cloud scale, as major providers look to curb soaring inference expenses and lessen dependence on Nvidia graphics processors.

  • large group of college students sitting on an academic quad

    Student Readiness: Learning to Learn

    Melissa Loble, Instructure's chief academic officer, recommends a focus on 'readiness' as a broader concept as we try to understand how to build meaningful education experiences that can form a bridge from the university to the workplace. Here, we ask Loble what readiness is and how to offer students the ability to 'learn to learn'.

  • Blue metallic mesh fabric folds

    Microsoft Acquires Osmos for Agentic AI Data Engineering

    In a strategic move to reduce time-consuming manual data preparation, Microsoft has acquired Seattle-based startup Osmos, specializing in agentic AI for data engineering.