java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut
Don't use "and" operator to link aspect designators. In Java you can use the "&&" operator. "and" is only available in XML.
@Pointcut("execution(* springdemo2."
+ "Thinker.thinkOfSomething(String)) and args(thoughts)")
should be
@Pointcut("execution(* springdemo2."
+ "Thinker.thinkOfSomething()) && args(thoughts)")
@Before("thinking(thoughts)")
should be
@Before("thinking(String) && args(thoughts)")