How to use java to get the specified annotated class under the package
This article mainly introduces how to use java to get the specified annotated classes under the package. The article is very detailed and has a certain reference value. Interested friends must read it!
Option 1: adopt the reflections framework (this framework depends on com.google.guava)
1. Reflections frame address: https://github.com/ronmamo/reflections
2. Project dependence
Org.reflections reflections 0.9.11 com.google.guava guava 21.0
3. Implementation code
/ / input the name of the package to be scanned Reflections f = new Reflections ("com.ggband.netty.execute.command"); / / enter the target annotation class Set > getClasses (String packageName) throws Exception {/ / List > () of the first class class; Set loadClass (String name) throws ClassNotFoundException {return super.loadClass (name);}}; classes.add (classLoader.loadClass (classsName));} public Set > controllers = new HashSet () Set > set = new Scanner () .getAnnotationClasses (com.ggband.netty.execute.command, Cmd.class)
Extension: now you can implement your own business, such as scanning the Cmd annotated classes under the com.ggband.netty.execute.command package to get Cmd annotated value and instances of annotated classes
Map beanContainer = new HashMap (); try {/ / @ 1 uses the reflections framework (this framework relies on com.google.guava) / / Reflections f = new Reflections ("com.ggband.netty.execute.command"); / / Set > set = new Scanner (). GetAnnotationClasses ("com.ggband.netty.execute.command", Cmd.class); for (Class c: set) {Object bean = c.newInstance () Cmd annotation = c.getAnnotation (Cmd.class); beanContainer.put (Arrays.toString (annotation.value ()), (Command) bean);}} catch (Exception e) {e.printStackTrace ();} above is all the content of the article "how to use java to get the specified annotated classes under the package". Thank you for reading! Hope to share the content to help you, more related knowledge, welcome to follow the industry information channel!